Tengo una vista de calendario semanal y tengo una ruta configurada para aceptar /: año /: mes /: día para la fecha de inicio.Rutas rutas con fechas
match "events/(:year/:month/:day)" => "events#index",
:constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
:as => "events_date"
Tengo dos preguntas con respecto al uso de esta ruta. En primer lugar, al analizar los parametros, esto es lo que estoy haciendo:
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
Esto me parece bastante detallado y un poco feo. ¿Hay una mejor manera?
Y al hacer un enlace a otra semana en el calendario (para paginación semana a semana), ¿tengo que hacer algo como
#assume an date object with the desired start date
link_to events_date_path(date.strftime('%Y'), date.strftime('%m'), date.strftime('%d'))
Lo que también parece un poco prolijo y feo. ¿Cuál es la mejor manera de trabajar con las fechas en las rutas?
¿Hay alguna razón por la que deba ser legible y en ese formato? ¿Tendría más sentido configurarlo como coincidencia "events/(: date)" donde: date termine siendo como "2012-05-01" y usted puede hacer un tiempo directo sobre eso en un objeto de fecha real? –
No, este es un proyecto completamente personal, este es tanto un ejercicio de programación como un problema real – DVG
Supongo que llevaré mi respuesta a un campo de respuesta real, entonces. ;) –