【发布时间】:2014-07-06 22:39:57
【问题描述】:
这是我第一次尝试使用助手。我想将我在视图中不断重复使用的相对较长的方法放入帮助程序中。
视图中的代码实例在这里:
<%= @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>
更新:达米安是救生员。他的回答很有效,帮助我理解。赞一个
提前致谢
【问题讨论】:
-
@EgeErsoz 它是在正确的助手中,我读了那么多..
标签: ruby-on-rails ruby view-helpers