我已经实现了一个应用程序助手来动态地向视图提供 Flash 消息的类,以便使用 Bootstrap 进行样式设置。设置有效,但与 ERB 一起,实际参数散列被输出到视图。我在帮助程序和视图中查看了我的所有应用程序代码,但无法查明来源。我还查看了输出 HTML,它并不表示源问题。以下是帮助程序和视图以及问题输出结果的快照。
问题视图输出
http://screencast.com/t/9KZHxjqm1Pq
--
# layouts/application.html.erb
...
</head>
<body>
<%= render "layouts/header" %>
<div class="container">
<% if flash.any? %>
<%= render 'shared/flash_messages' %>
<% end %>
<%= yield %>
...
--
# views/shared/_flash_messages.html.erb
<div>
<%= flash.each do |key, value| %>
<div class="<%= flash_class(key) %> fade in">
<a href="#" data-dismiss="alert" class="close">x</a>
<%= "#{value}" %>
<% end %>
</div>
</div>
--
# helpers/application_helper.rb
module ApplicationHelper
def flash_class(level)
case level
when :notice then "alert alert-info"
when :success then "alert alert-success"
when :error then "alert alert-error"
when :alert then "alert alert-error"
end
end
end