我有以下代码显示有序列表中的说明。当它在浏览器中呈现时,它会在一行中输出所有指令。难道我做错了什么?例如,请参见下面的输出。
代码:
<% @recipe.instructions.each_line do |instruction| %>
<li><%= instruction %></li>
<% end %>
输出:
<p>
<b>Instructions:</b>
<ol>
<li>Roast garlic
</li>
<li>test
</li>
<li>eat icecream</li>
Roast garlic
test
eat icecream </ol>
</p>
Rails 3 rc2 ruby 1.9.2dev(2010-07-11修订版28618)
答案 0 :(得分:5)
你确定你没有这样做吗?
<%= @recipe.instructions.each_line do |instruction| %>
<li><%= instruction %></li>
<% end %>
注意循环开始时的extra =。由于each_line返回字符串,它将再次吐出字符串。
答案 1 :(得分:0)
所以我终于想通了。我更改了代码以使用Array#each并删除了块帮助程序中的等号。
最终代码:
<% @recipe.instructions.split(/\r\n/).each do |instruction| %>
<li><%= instruction %></li>
<% end %>