Rails路由发送非静态默认值

时间:2013-09-26 10:35:52

标签: ruby-on-rails routing

我正在将应用程序从rails 2.3 / x升级到3.2.x

我有一条旧路线:

map.calendar '/calendar/:year/:month', :controller => 'calendar', :action => 'index', :year => Time.now.year, :month => Time.now.month

rake路由生成如下内容:

calendar        /calendar/:year/:month   {:controller=>"calendar", :action=>"index"}

我不确定这里的年份和月份是什么,如果没有给出,是否会发送默认值?什么是它的rails 3.2.x语法。

我试过这样的事情:

match '/calendar/:year/:month' => 'calendar#index', :defaults => {:year => Time.now.year, :month => Time.now.month}

rails 3.2.x中生成的路由是:

/calendar/:year/:month(.:format)  calendar#index {:year=>2013, :month=>9}

帮我正确转换此路线。

1 个答案:

答案 0 :(得分:0)

您应该在as电话中添加match密钥:

match '/calendar/:year/:month' => 'calendar#index', :defaults => {:year => Time.now.year, :month => Time.now.month}, :as => 'calendar'