Маршруты Rails с датами

Итак, я у меня есть недельный календарь, и у меня есть маршрут, настроенный для принятия / :года / :месяца / :дня для даты начала.

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

У меня есть два вопроса относительно использования этого маршрута. Во-первых, при разборе параметров я делаю следующее:

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

, что тоже кажется многословным и некрасивым. Как лучше всего работать с датами в маршрутах?

5
задан DVG 2 May 2012 в 20:34
поделиться