Rutas de carriles con fechas.

Así que tengo una vista de calendario semanal y tengo una ruta configurada para aceptar /: año /: mes /: día para la fecha de inicio.

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

Tengo dos preguntas sobre el uso de esta ruta. Primero, cuando analizo los parámetros, esto es lo que estoy haciendo:

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

Esto me parece bastante verboso y algo feo. ¿Hay alguna manera mejor?

Y al hacer un enlace a otra semana en el calendario (para paginación semana a semana), ¿tengo que hacer algo como

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

Lo que también parece algo verboso y feo. ¿Cuál es la mejor manera de trabajar con fechas en rutas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta