use*_*289 24 ruby ruby-on-rails twitter-bootstrap ruby-on-rails-4
我还在我的rails 4演示网站上工作,我看到一件奇怪的事情.在控制器中它有一个这样的行:
format.html { redirect_to @widget, notice: 'Widget was successfully created.' }
Run Code Online (Sandbox Code Playgroud)
这会在重定向页面中呈现一条Flash消息,这是预期的.但是,附加到消息div的css类alert alert-notice不是有效的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>
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑2:
也许在我原来的问题中我不够清楚.我完全理解在这种情况下如何在flash对象中设置类.我有兴趣学习如何notice:在format.html块中使用和自定义.似乎应该有办法通过这个通知传递课程?或者这不是Rails的核心做事方式吗?
Kir*_*rat 39
在application.html.erb,您将显示flash消息.
更新该代码如下
<% flash.each do |name, msg| %>
<%= content_tag :div, msg, class: "alert alert-info" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
您可以在class选项中添加要应用于Flash消息的类.
编辑
alert alert-notice因为alert alert-<%= key %>你的代码中的类设置.你打电话的时候redirect_to @widget, notice: 'Widget was successfully created.
将flash使用key as notice和value 添加一条flash消息Widget was successfully created.,即,
flash[:notice] = "Widget was successfully created."
Run Code Online (Sandbox Code Playgroud)
编辑#2
format.html { redirect_to @widget, notice: 'Widget was successfully created.' }
notice: 'Widget was successfully created.'是传递给redirect_to方法的参数.它flash在此方法中添加到哈希.
Sac*_*our 30
将此添加到
class ApplicationController
add_flash_types :success, :warning, :danger, :info
end
Run Code Online (Sandbox Code Playgroud)
然后你可以在控制器中执行此操作
format.html { redirect_to @widget, success: 'Widget was successfully created.' }
Run Code Online (Sandbox Code Playgroud)
只要你在布局中这样做了
<div class="container">
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<%= yield %>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50292 次 |
| 最近记录: |