Рельсовые маршруты с датами
Таким образом, у меня есть еженедельное представление календаря, и у меня есть маршрут, настроенный для принятия /: год /: месяц /: день в качестве даты начала.
<code> match "events/(:year/:month/:day)" => "events#index", :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ }, :as => "events_date" </code>
У меня есть два вопроса относительно использования этого маршрута. Во-первых, при разборе параметров это то, что я делаю:
<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>
Это кажется мне довольно многословным и отчасти уродливым. Есть ли способ лучше?
И когда я делаю ссылку на другую неделю в календаре (для перехода от недели к неделе), я должен сделать что-то вроде
<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>
Что также кажется довольно многословным и безобразным. Как лучше всего работать с датами в маршрутах?