1

私は興味がありました.ERBファイルで、ビューヘルパーにブロックを渡すとき、なぜこれが機能するのですか:

<%= div_for @thing do |x| %>
  <%= x %>
<% end %>

これはしませんが

<%= div_for @thing {|x| x.to_s} %>

Ruby ではdo...endとまったく同じ{...}であるのに、なぜ ERB ではそうでないのでしょうか? 余談ですがx、上記の 2 行目で単独で使用できます。これは、その.to_sメソッドがレンダリングしたいフィールドを返すためです。これが以前に尋ねられた場合は申し訳ありませんが、同様の質問を見つけることができませんでした( 同様の回答が見つかりました)。

4

1 に答える 1

0

コードの2番目のブロックは次のものとまったく同じだと思います。

<%= div_for @thing do |x| %>
  <% x %>
<% end %>

xには「=」が付いていないため、ビューに出力されません。試す :

<%= div_for @thing {|x| concat x.to_s} %>
于 2012-08-22T14:41:53.097 に答える