【问题标题】:Rails 2.3.x equivalent of Rails3 optional route parametersRails 2.3.x 等效于 Rails3 可选路由参数
【发布时间】:2010-12-08 16:58:16
【问题描述】:

在 Rails 3 中,我可以这样做:

match "/page(/:section)", :to => 'some_controller#page'

/page/page/some_section 都将映射到 some_controller#page

Rails 2.3.x 中是否有类似的功能?好像没找到

我目前正在使用两种单独的路由方法,如下所示:

map.page          '/page',          :action => 'page'
map.page_section  '/page/:section', :action => 'page'

【问题讨论】:

  • 您可以将 map.connect "page" 和 map.connect "page/:section" 写成单独的规则。
  • 应该提到这是我目前正在使用的,寻找更简洁的语法

标签: ruby-on-rails routing


【解决方案1】:

如果您指定默认值,参数将变为可选。

map.page '/page/:section', :action => 'page', :section => "default"

如果存在:section,则该值将是当前值。否则默认为default,路由器不会报错。

您也可以将值默认为nil

map.page '/page/:section', :action => 'page', :section => nil

【讨论】:

  • 这样我的控制器中还有 params[:section] = 'default' ?
  • 我的默认值可以是nil 吗?
  • 回答我自己的问题,设置:section => nil 有效。谢谢!
  • 我不确定:section => nil 是否有效。很高兴知道! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多