所以我有一个每周日历视图,并且我有一个路线设置为接受开始日期的/:年/月/日:。有日期的轨道路线
match "events/(:year/:month/:day)" => "events#index",
:constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
:as => "events_date"
我对使用这条路线有两个问题。首先,在解析params时,这是我正在做的:
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转换为真正的日期对象? –
不,这是一个完全个人的项目,这是一个编程练习,因为它是一个真正的问题 – DVG
我想我会把我的答案带到实际的答案领域,然后。 ;) –