我在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 })
我做错了什么?
答案 0 :(得分:1)
试试这个
<% previous = "" %>
<% ['foo', 'bar'].each do |var| %>
<%= previous %>
<% previous = var %>
<% end %>