Если вам нужны дополнительные функции в вашем представлении, вы обычно объявляете их внутри помощника.
Для каждого контроллера, если есть помощник, он загружается автоматически. Например, если у вас есть PeopleController, в папке app/helpers
должен быть people_helper.rb
, и он должен выглядеть следующим образом
module PeopleHelper
def name
#do something
username
end
end
Другая, очень чистая альтернатива - использовать шаблон Presenter , но я думаю, что он встречается реже (к сожалению).
В противном случае, если вам нужно несколько строк кода ruby в представлении erb, которого я стараюсь избегать, я предпочитаю следующий стиль:
<%
counter_1 = 0
counter_2 = 1
do_some_more_prep_here
%>
<% @records.each do |rec|%>
<%# do something with the prepped date in each row %>
<% end %>
Также для меня отступ в коде важнее, чем в HTML, поэтому я предпочитаю что-то вроде
<table>
<% @rows.each do |row| %>
<tr>
<td><%= row.item1 %></td>
<% if row.some_test %>
<td><%= row.item2 %></td>
<% end %>
</tr>
<% end %>
</table>
Но мне всегда очень интересно слышать разные мнения по этому вопросу.