【发布时间】:2016-11-07 05:10:20
【问题描述】:
我是 Web 开发和 jQuery 的初学者。
我希望在创建新消息时在屏幕上弹出一条闪现消息。使用下面的代码,创建时屏幕上会弹出一条新的聊天消息,而无需重新加载。但是,Flash 消息不会在创建聊天消息的同时出现。
有人知道如何处理这个问题吗?任何建议将不胜感激。
提前致谢!
我的母语不是英语,所以如果您有任何问题或这篇文章没有意义,请告诉我!
这是我的代码。
message/create.js.erb
$("#message_body").val("");
$("ul").html("<%=j(render @messages) %>");
$("#layout-notice").html("<%=j flash[:notice] %>");
messages_controller.rb
def index
@messages = @chat_group.messages
@message = Message.new
end
def create
@message = Message.new(message_params)
@message.chat_group = @chat_group
@message.user = current_user
# @message.save
if @message.save
flash[:notice] = 'successfully sent'
else
flash[:notice] = 'Unfortunately failed to sent'
end
@messages = @chat_group.messages.all
end
messasges/index.html.haml
- if user_signed_in?
= form_for @message, :url => {:action => :index}, remote: true do |f|
= f.text_field :body
= f.submit 'send'
%ul
= render @messages
= link_to "sign out", destroy_user_session_path, method: :delete
- else
%h1 you need to log in
= link_to "sign in", user_session_path, method: :post
【问题讨论】:
-
您可以使用
toastr-railsgem 在 JS 中显示 flash 消息。欲了解更多详情,请访问github.com/tylergannon/toastr-rails。 -
谢谢乌代。我会试一试。
标签: javascript jquery ruby-on-rails ruby-on-rails-4