循环中的局部变量

时间:2013-03-07 23:07:38

标签: ruby erb

我在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 })

我做错了什么?

1 个答案:

答案 0 :(得分:1)

试试这个

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