したがって、週ごとのカレンダービューがあり、開始日として/:year /:month /:dayを受け入れるようにルートが設定されています。
match "events/(:year/:month/:day)" => "events#index",
:constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
:as => "events_date"
このルートの使用に関して2つの質問があります。まず、パラメータを解析するとき、これは私がしていることです:
unless params[:year].nil? || params[:month].nil? || params[:day].nil?
start_date = Date.new(params[:year].to_i, params[:month].to_i, params[:day].to_i)
end
start_date = start_date.nil? ? Date.today : start_date
これはかなり冗長で醜いものだと私は思います。もっと良い方法はありますか?
そして、カレンダーの別の週へのリンクを作成するとき(週ごとのページング用)、次のようなことをする必要がありますか?
#assume an date object with the desired start date
link_to events_date_path(date.strftime('%Y'), date.strftime('%m'), date.strftime('%d'))
これも一種の冗長で醜いようです。ルートの日付を処理するための最良の方法は何ですか?