1

我在 ERB 模板中有以下代码:

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

我希望它输出foo,但它什么也不输出,previous总是nilprevious没有在循环之外定义,第一个赋值发生在第一个循环结束之后。

这就是我渲染模板的方式:

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 回答