【问题标题】:Rails routing sending non static default valueRails 路由发送非静态默认值
【发布时间】:2013-09-26 10:35:52
【问题描述】:

我正在将应用程序从 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}

帮我正确转换这条路线。

【问题讨论】:

    标签: ruby-on-rails routing


    【解决方案1】:

    您应该将as 密钥添加到您的match 调用中:

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

    【讨论】:

    • 我也这样做了,生成的路线是 calendar /calendar/:year/:month(.:format) calendar#index {:year=>2013, :month=>9} 为什么这样哈希在那里,但在 rails 2.3.x 中生成路由时不是这种情况
    • @NaveenAgarwal 是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多