Это совсем смутило меня на некоторое время. Я получаю странное поведение, пытаясь перебрать строки текста в erb, когда вся строка текста печатается после завершения цикла.
<% "some\nmultiline\ntext".each_line do |line| %>
<%= line %> <br />
<% end %>
Выходы:
some
multiline
text
some multiline text
И так же:
<% "some\nmultiline\ntext".lines.each do |line| %>
<%= line %> <br />
<% end %>
Но следующее работает так, как я ожидал:
<% "some\nmultiline\ntext".lines.to_a.each do |line| %>
<%= line %> <br />
<% end %>
и отпечатки:
some
multiline
text
Я определенно не просто случайно вставил =
. Что может быть причиной этого странного поведения?
Я использую Rails 3.0.10, Ruby 1.9.2.