Извините, если заголовка недостаточно для понимания то, о чем я спрашиваю. Я - разработчик направляющих, и я использовал несколько строк <% %> в моих представлениях, но теперь я понял, что это не лучшая практика, таким образом, я приехал сюда, и любите Вам всем превосходных парней, каков корректный путь в ROR?
Например, если я потребовал к чему-то как следующее
<% user =User.all %>
<% name= [] %>
<% count = 0 %>
<% for user in users %>
<% name << user.name %>
<% count+=1%>
<% end %>
Я могу сделать это следующим образом?
<% user =User.all
name= []
count = 0
for user in users
name << user.name
count+=1
end
%>
Я знаю, что лучшим способом собрать элемент из массива, Но выше является просто пример. Но мой вопрос, действительно ли возможно и если да, который является корректным путем?
Я думаю, что правильный способ - это нечто совершенно иное: убрать логику из представлений .
Это сообщение в блоге объясняет, что я имею в виду.
Использование только одной пары тегов для каждого блока кода, безусловно, предпочтительнее хотя бы потому, что это уменьшает размер вывода.
На самом деле код должен выглядеть как
<% names = User.all.map(&:name) %>
Обратите внимание, что "count" можно получить через names.size.
Если вам нужно смешивать <% и <% =, вам нужно переключить:
<% for user in User.all %>
<%= user.name %></br>
<% end %>