我仍然在我的rails 4演示网站上工作,我看到一件奇怪的事情.在控制器中,它有一条这样的行:
format.html { redirect_to @widget,notice: 'Widget was successfully created.' }
这会在重定向的页面中显示一条Flash消息,这是预期的.但是,附加到消息div的css类是alert alert,而不是一个有效的Bootstrap警报类,如alert-info.
该闪存设置的类在哪里,如何自定义?
另外,如果我通过ajax删除记录,有没有办法访问核心闪存容器通过js显示消息,或者我必须显示/隐藏我自己的Flash消息div只是为了ajax请求?
编辑:我的Michael Hartl启发了layouts / application.html.erb:
<div class="container"> <% flash.each do |key,value| %> <div class="alert alert-<%= key %>"><%= value %></div> <% end %> <%= yield %> </div>
谢谢!
编辑2:
也许我在原来的问题上还不够清楚.在这种情况下,我明白了Flash中的类是如何设置的.我有兴趣学习如何使用和自定义通知:在format.html块中.看来应该有办法通过这个通知课吗?还是这不是Rails的核心方式呢?
解决方法
在application.html.erb中,您将显示Flash消息.
更新该代码如下
<% flash.each do |name,msg| %> <%= content_tag :div,msg,class: "alert alert-info" %> <% end %>
您可以在类选项中添加要应用于Flash消息的类.
编辑
由于alert alert-<%= key%>将该类设置为alert alert-notice在你的代码
当您调用redirect_to @widget时,请注意:“小部件已成功创建.
Flash消息将作为Widget成功创建的通知和值添加到闪存哈希中,即,
flash[:notice] = "Widget was successfully created."
编辑#2
format.html {redirect_to @widget,notice:“Widget已成功创建”. }