我不确定为什么会发生这种情况,但当我在rails应用程序中成功提交表单时,它会将一个错误的div类添加到我成功的flash消息中。我在我的flash消息中使用了这个代码:
<% flash.each do |name, msg| %>
<div class="alert alert-<%= name == :notice ? "success" : "error" %>">
<a class="close" data-dismiss="alert">×</a>
<%= content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) %>
</div>
<% end %>
这正是Ryan Bates在rails的演员阵容中建议做的:
http://railscasts.com/episodes/329-more-on-twitter-bootstrap?view=asciicast
这段代码有什么问题?如果我简单地这样做,它工作得很好:
<% flash.each do |name, msg| %>
<div class="alert alert-<%= name %>">
<a class="close" data-dismiss="alert">×</a>
<%= content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) %>
</div>
<% end %>
但这似乎不是做这件事的正确方式。我不明白为什么铁路广播中建议的代码不能工作。
发布于 2012-08-27 12:50:44
在控制器中创建闪存消息时,您可以放入字符串'notice'
而不是符号:notice
。尝试在您的application.html.haml
中添加这些行,看看您从flash消息中获得了什么
- if Rails.env.development?
= debug(params)
= debug(flash) unless flash.empty?
发布于 2012-08-27 12:29:41
据我所知,flash
有时包含空元素。在迭代之前,检查flash
中是否有内容。
https://stackoverflow.com/questions/12134762
复制相似问题