Rails 2.3.x相当于Rails3的可选路由参数

bra*_*rad 8 routing ruby-on-rails

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

match "/page(/:section)", :to => 'some_controller#page'
Run Code Online (Sandbox Code Playgroud)

而且两者/page/page/some_section会映射到some_controller#页

在Rails 2.3.x中是否有相同的功能?我似乎找不到它

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

map.page          '/page',          :action => 'page'
map.page_section  '/page/:section', :action => 'page'
Run Code Online (Sandbox Code Playgroud)

Sim*_*tti 14

如果指定默认值,则参数将变为可选参数.

map.page '/page/:section', :action => 'page', :section => "default"
Run Code Online (Sandbox Code Playgroud)

如果:section存在,则该值将是当前值.否则,它将默认为default并且路由器不会抱怨.

您还可以将值默认为nil.

map.page '/page/:section', :action => 'page', :section => nil
Run Code Online (Sandbox Code Playgroud)