Ruby on rails 如何理解这个代码? def事件\日历\选项 { :year=>@year, :月=>@月, :event_strips=>@event_strips, :month_name_text=>I18n.localize(@show_month,:format=>%B%Y)), :上个月文本=>“>” } 结束 def事件日历 日历事件_日历_选项do |参数| 事件=参数[:事件] %() 结束 结束

Ruby on rails 如何理解这个代码? def事件\日历\选项 { :year=>@year, :月=>@月, :event_strips=>@event_strips, :month_name_text=>I18n.localize(@show_month,:format=>%B%Y)), :上个月文本=>“>” } 结束 def事件日历 日历事件_日历_选项do |参数| 事件=参数[:事件] %() 结束 结束,ruby-on-rails,plugins,calendar,Ruby On Rails,Plugins,Calendar,在这里,整个event_calendar_选项被{}包围,所以它只是返回哈希表吗 其次,为什么事件\日历\选项(一种模块方法)可以作为参数传递给日历 假设它们是同一类的一部分(例如控制器或模型),事件日历选项可由事件日历调用。这是课堂上的常见做法。即使它们不是公共类,也可以将它们声明为公共类,并由其他类调用(这不太常见) 是的,event\u calendar\u options返回哈希表。在ruby中,除非提供return语句,否则将返回final语句。在这种情况下,它将返回一个哈希表,该哈希

在这里,整个event_calendar_选项被{}包围,所以它只是返回哈希表吗


其次,为什么事件\日历\选项(一种模块方法)可以作为参数传递给日历

假设它们是同一类的一部分(例如控制器或模型),
事件日历选项可由
事件日历调用。这是课堂上的常见做法。即使它们不是公共类,也可以将它们声明为公共类,并由其他类调用(这不太常见)


是的,
event\u calendar\u options
返回哈希表。在ruby中,除非提供
return
语句,否则将返回final语句。在这种情况下,它将返回一个哈希表,该哈希表将由
event\u calendar
方法迭代

假设它们是同一类的一部分(例如控制器或模型),
事件日历选项可由
事件日历调用。这是课堂上的常见做法。即使它们不是公共类,也可以将它们声明为公共类,并由其他类调用(这不太常见)


是的,
event\u calendar\u options
返回哈希表。在ruby中,除非提供
return
语句,否则将返回final语句。在这种情况下,它将返回一个哈希表,该哈希表将由
event\u calendar
方法迭代

它可以作为参数传递,因为它返回散列。它可以作为参数传递,因为它返回散列。那么,为什么要在散列周围使用类而不是直接定义散列呢?它不是散列周围的类,而是一个方法。既然我们处于一个类(控制器或模型)的上下文中,那么除了定义一个方法之外,我们如何定义一个散列呢?depa是正确的。这是一种方法,如果不直接询问,我们无法理解作者的动机。它可能用于多个方法中,或者从其他类调用?如果是这样的话,这样做会被认为是一种枯燥的方法。那么为什么要费心在散列中使用类而不是直接定义散列呢?它不是散列中的类,而是一种方法。既然我们处于一个类(控制器或模型)的上下文中,那么除了定义一个方法之外,我们如何定义一个散列呢?depa是正确的。这是一种方法,如果不直接询问,我们无法理解作者的动机。它可能用于多个方法中,或者从其他类调用?如果是这样的话,这样做将被认为是一种枯燥的方法。
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