Ruby on rails 使用每一行的字符串迭代
我有以下代码,它在一个有序列表中显示指令。在浏览器中渲染时,它会在一行中输出末尾的所有指令。我做错什么了吗?例如,请参见下面的输出 代码:Ruby on rails 使用每一行的字符串迭代,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有以下代码,它在一个有序列表中显示指令。在浏览器中渲染时,它会在一行中输出末尾的所有指令。我做错什么了吗?例如,请参见下面的输出 代码: 输出: <p> <b>Instructions:</b> <ol> <li>Roast garlic </li> <li>test </li> <li>eat icecream</li> R
输出:
<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)你确定你没有这样做吗
<%= @recipe.instructions.each_line do |instruction| %>
<li><%= instruction %></li>
<% end %>
注意循环开始时的额外=值。由于每行返回字符串,它将再次吐出字符串。您确定没有执行类似操作吗
<%= @recipe.instructions.each_line do |instruction| %>
<li><%= instruction %></li>
<% end %>
注意循环开始时的额外=值。因为每行返回字符串,它会再次吐出字符串。所以我终于找到了答案。我将代码更改为使用Array#each,并删除了块辅助对象中的等号 最终代码:
<% @recipe.instructions.split(/\r\n/).each do |instruction| %>
<li><%= instruction %></li>
<% end %>
所以我终于找到了答案。我将代码更改为使用Array#each,并删除了块辅助对象中的等号
最终代码:
<% @recipe.instructions.split(/\r\n/).each do |instruction| %>
<li><%= instruction %></li>
<% end %>
实际上,我在那一行收到了以下弃用警告(弃用警告:样式块帮助程序已弃用。请使用),因此我添加了“=”,警告消失,但输出仍然相同。我可能错了,但我真的认为没有弃用。可能是。实际上,我在那一行收到了以下弃用警告(弃用警告:样式块帮助程序已弃用。请使用),因此我添加了=并且警告消失,但输出仍然相同。我可能是错的,但我真的认为没有弃用。可能是。你能分享上面和下面的代码吗?我有一种感觉,可能有一些临时调试代码潜伏着…实际上你可以看到所有的代码,这是有问题的页面,请看第46-53行。你能分享上面和下面的代码吗?我有一种感觉,可能有一些临时调试代码潜伏着…实际上你可以看到所有的代码,这里是有问题的页面,请参见第46-53行。