Schienenwege mit Daten

Ich habe also eine wöchentliche Kalenderansicht und eine Route eingerichtet, um /: Jahr /: Monat /: Tag für das Startdatum zu akzeptieren.

<code>  match "events/(:year/:month/:day)" => "events#index", 
      :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
      :as => "events_date"
</code>

Ich habe zwei Fragen zur Verwendung dieser Route. Wenn ich die Parameter analysiere, mache ich Folgendes:

<code>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
</code>

Das kommt mir ziemlich wortreich und irgendwie hässlich vor. Gibt es einen besseren Weg?

Und wenn ich eine Verknüpfung zu einer anderen Woche im Kalender herstelle (für wöchentliches Blättern), muss ich dann so etwas tun

<code>#assume an date object with the desired start date
link_to events_date_path(date.strftime('%Y'), date.strftime('%m'), date.strftime('%d'))
</code>

Das wirkt auch etwas wortreich und hässlich. Wie arbeite ich am besten mit Daten in Routen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage