Строковая итерация с использованием each_line - PullRequest
1 голос
/ 02 сентября 2010

У меня есть следующий код, который отображает инструкции в упорядоченном списке. Когда он отображается в браузере, он выводит все инструкции в конце в одну строку. Я делаю что-то неправильно? Смотрите вывод ниже, например.

Код:

 <% @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)

Ответы [ 2 ]

5 голосов
/ 02 сентября 2010

Вы уверены, что не делаете что-то подобное вместо этого?

<%= @recipe.instructions.each_line do |instruction| %>
  <li><%= instruction %></li>
<% end %>

Обратите внимание на дополнительный = в начале циклаПоскольку each_line возвращает строку, она снова выплевывает строку.

0 голосов
/ 15 сентября 2010

Итак, я наконец понял это.Я изменил код для использования массива # каждый и удалил знак равенства в помощнике блоков.

Окончательный код:

<% @recipe.instructions.split(/\r\n/).each do |instruction| %>
  <li><%= instruction %></li>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...