我已经实现了一个应用程序助手,可以动态地向视图提供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
答案 0 :(得分:3)
这是因为你在做
<%= flash.each
因此显示each
的结果,以及块生成的任何内容。将&lt;%=更改为&lt;%