1

ERBテンプレートに次のコードがあります。

<% ['foo', 'bar'].each do |var| %>
  <%= previous %>
  <% previous = "#{var}" %>
<% end %>

出力されると思いますfooが、何も出力されません。previous常にnilです。previousがループ外で定義されていない場合、最初の割り当ては最初のループの終了後に行われます。

これが私がテンプレートをレンダリングする方法です:

f.write ERB.new(File.read(node)).result(namespace.instance_eval { binding })

私は何が間違っているのですか?

4

1 に答える 1

1

これを試して

<% previous = "" %>
<% ['foo', 'bar'].each do |var| %>
  <%= previous %>
  <% previous = var %>
<% end %>
于 2013-03-07T23:10:51.173 に答える