У меня есть повторяющаяся строка, которая выводит что-то вроде:
Звоните Джону Джонсу через -3 дня (статус)
У меня есть помощник show_status (контакт, электронная почта), который будет выводить, было ли это электронное письмо отправлено этому конкретному контакту.
Если оно «отправлено», то вся эта строка должна отображаться как «вычеркнуть».
Аналогично, если число дней равно -3 (<0), строка должна быть отформатирована красным. </p>
Вот мой хак, но должен быть более чистый способ поместить логику в контроллер?
Я жестко кодирую значение, которое обтекает строки, которые я хочу отформатировать, и назначаю значение на основе отдельного вызова для того же помощника:
<% for call in @campaign.calls %>
<% if !show_call_status(@contact,call).blank? %>
<%= strike_start = '<s>'%>
<%= strike_end = '</s>' %>
<% end %>
<p>
<%= strike_start %>
<%= link_to call.title, call_path(call) %> on
<%= (@contact.date_entered + call.days).to_s(:long) %> in <%= interval_email(@contact,call) %>
days
<%= make_call(@contact,call) %>
<span class='status'><%= show_call_status(@contact,call) %></span>
<%= strike_end %>
</p>
<% end %>
Полагаю, я хотел бы, чтобы в представлении не было оператора if. Не уверен, как это сделать.