1

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
4

1 に答える 1

3

やってるからだよ

 <%= flash.each

eachそのため、ブロックによって生成されたものと同様に、の結果が表示されます。<%= を <% に変更します

于 2012-08-03T23:45:58.740 に答える