Это моя первая попытка использовать помощников. Я хочу поместить относительно длинный метод, который я продолжаю повторно использовать в своих представлениях, в помощник.
Пример кода в представлении находится здесь:
<%= @guide.date_starting.strftime("%B #{@guide.date_starting.day.ordinalize}") %> to
<%= @guide.date_ending.strftime("%B #{@guide.date_ending.day.ordinalize}") %>
Итак, что я пытался сделать, это написать это в помощнике модуля:
def start_time_display
self.strftime("%B #{@guide.date_starting.day.ordinalize}")
end
def end_time_display
self.strftime("%B #{@guide.date_ending.day.ordinalize}")
end
а потом написать это в представлениях
<%= @guide.date_starting.start_time_display %> to <%= @guide.date_ending.end_time_display %>
который дает мне эту ошибку:
undefined method `start_time_display' for Wed, 03 Sep 2014 00:00:00 UTC +00:00:Time
Итак, как мне этого добиться? Где я ошибаюсь? Как я мог написать это лучше? Правильно ли я обращаюсь к помощникам? Я ознакомился с документацией и, насколько я понимаю, для этого они и нужны.
РЕДАКТИРОВАТЬ:
поэтому я добавил ответ Дэмиена,
View.html.erb
помощник гида
def time_display(datetime)
strftime("%B #{datetime.day.ordinalize}")
end
def time_display_span(start, end_date)
time_display(start) + " to " + time_display(end_date)
end
ошибка...
undefined method `strftime' for #<#<Class:0x000001088c0128>:0x000001088cb168>
Обновление: Дэмиен был спасителем. Его ответ сработал и помог мне понять. Престижность
заранее спасибо