1
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 をパラメーターとしてカレンダーに渡すことができるのはなぜですか?

4

1 に答える 1

1

それらが同じクラス (コントローラーやモデルなど) の一部であると仮定すると、event_calendar_optionsによって呼び出すことができますevent_calendar。これは、クラス内での一般的な方法です。そうでない場合でも、パブリックとして宣言し、他のクラスからも呼び出すことができます (あまり一般的ではありません)。

そして、はい、event_calendar_optionsハッシュ テーブルを返します。Ruby では、ステートメントが提供されない限り、最終的なステートメントが返さreturnれます。この場合、メソッドによって繰り返されるハッシュ テーブルが返されますevent_calendar

于 2013-03-29T02:03:55.810 に答える