有没有办法在特定的Flash消息中添加类或ID?我需要消除一些消息,有些消息仍然存在。我想基于一个html类来做这个。
感谢您的帮助
答案 0 :(得分:4)
你可以(例如)做
flash[:notice] = {:class => :urgent, :body => 'hello'}
然后在你的布局中
- if flash[:notice]
%div{:class => flash[:notice][:class]}
= flash[:notice][:body]
但肯定有多种方法可以做到这一点 - 你可以在flash[:notice]
时使用一个类,在flash[:error]
时使用另一个类
答案 1 :(得分:3)
Flash消息只是存储在散列flash
中。在您的视图中,您可以迭代所有的Flash消息,如下所示:
<% flash.each do |key, msg| %>
<%= content_tag :div, msg, :id => key %>
<% end %>
您可以随时检查特定消息并附加特定类。也许是这样的:
<% flash.each do |key, msg| %>
<% if msg.include? 'fatal' %>
<%= content_tag :div, msg, :id => key, :class => 'fatal' %>
<% end %>
<% end %>
这是一个有关Flash消息的更多信息的railscast。
答案 2 :(得分:0)
添加课程:
<%= content_tag(:p, notice, class: 'notice') if notice %>
<%= content_tag(:p, alert, class: 'alert' ) if alert %>
添加ID:
<%= content_tag(:p, notice, id: 'notice') if notice %>
<%= content_tag(:p, alert, id: 'alert' ) if alert %>
它呈现(示例):
<p class="alert">Invalid email or password.</p>
<p id="alert">Invalid email or password.</p>