【发布时间】:2012-05-03 04:57:40
【问题描述】:
所以我有一个每周日历视图,并且我设置了一条路线以接受 /:year/:month/:day 作为开始日期。
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'))
这似乎也有点冗长和丑陋。在路线中处理日期的最佳方式是什么?
【问题讨论】:
-
它是否需要人类可读,并且采用那种格式?将其设置为匹配 "events/(:date)" 是否更有意义,其中 :date 最终类似于 "2012-05-01",您可以直接将 strftime 设置为真实的日期对象?
-
不,这是一个完全个人的项目,这既是一个编程练习,也是一个真正的问题
-
我想我会把我的答案带到一个实际的答案字段中。 ;)
标签: ruby-on-rails-3 date routes