Предупреждение: Noob здесь.
Я знаю, что это тривиальный вопрос, но мне сложно понять, как именно я могу упростить свои взгляды, перемещая части из них в помощников. Например, я всегда читал, что условные выражения в ваших представлениях являются первыми кандидатами на извлечение в помощники, но я не мог найти примеров этого, и мои попытки достичь этого не удались.
Например, предположим, что у меня есть:
#index.html.erb
<% for beast in @beasts do -%>
<% if beast.dead? -%>
<%= beast.body %>
<%= link_to "bury", bury_beast_path( :id => beast.id ) %>
<% else -%>
<%= beast.body %>
<%= link_to "kill!", kill_beast_path( :id => beast.id ) %>
<% end -%>
<% end -%>
Мне это немного раздражает, чтобы это было на мой взгляд, но как именно я мог переместить это вместо помощника? И еще более упростите это, если это возможно. (Я где-то читал, что условные ошибки плохие, но это просто вне меня, как вы можете программировать что-либо без них.)
Другой пример: мне нужно id
my body
теги в формате controller_action
. Самое лучшее, что я получил до сих пор:
#index.html.erb
<body id="<%= controller_action %>">
... и...
#application_helper.rb
def controller_action
@id = @controller.controller_name + "_" + @controller.action_name
end
Я не эксперт, но это все еще уродливо даже для меня.
Чтобы усложнить ситуацию, Райан Сингер сказал что-то мне понравилось: чтобы лечить ERB как тег изображения, используя помощников, чтобы "раскрыть намерение", Затем в следующем вздохе говорят, что у вас не должно быть HTML в помощниках, потому что это путь в ад. WTF? Как обе вещи совместимы? Если дело доходит до того, что вы можете просто объявить поведение в представлении, наверняка должно быть много HTML, которые будут отображаться за кулисами? Я не могу это понять.
Итак, это в основном это. Я был бы признателен, если бы кто-нибудь мог поделиться некоторыми мыслями по этому поводу или указать мне на какое-то хорошее углубленное чтение по этому вопросу, которое, как я обнаружил, имеет очень слабый охват в Интернете. Я уже дошел до истощения, но кто знает.