def event_calendar_options
{
:year => @year,
:month => @month,
:event_strips => @event_strips,
:month_name_text => I18n.localize(@shown_month, :format => "%B %Y"),
:previous_month_text => "<< " + month_link(@shown_month.prev_month),
:next_month_text => month_link(@shown_month.next_month) + " >>"
}
end
def event_calendar
calendar event_calendar_options do |args|
event = args[:event]
%(<a href="/events/#{event.id}" title="#{h(event.name)}">#{h(event.name)}</a>)
end
end
这里整个event_calendar_options被{}包围,所以它只返回哈希表吗?
其次,为什么event_calendar_options(模块方法)可以作为参数传递给日历?
答案 0 :(得分:1)
假设它们属于同一个类(例如控制器或模型),event_calendar_options
可以调用event_calendar
。这是课堂上的常见做法。即使它们不是,它们也可以被宣布为公共的,也可以被其他类别调用(这种情况不太常见)。
并且,是的,event_calendar_options
返回哈希表。在ruby中,除非提供return
语句,否则将返回最终语句。在这种情况下,它将返回一个哈希表,该表将由event_calendar
方法迭代。