是否可以在名为 route 的 rails 中将控制器值作为参数,我可以在运行时将其传递以将调用定向到正确的控制器?
例如 map.ride 'ride' ,:controller => {some-way-of-specifying-a-parameter}, :action => 'ride'
然后在运行时,我想传递这个调用应该去的控制器名称。我的操作根据发送呼叫的控制器执行不同的操作。谢谢
是否可以在名为 route 的 rails 中将控制器值作为参数,我可以在运行时将其传递以将调用定向到正确的控制器?
例如 map.ride 'ride' ,:controller => {some-way-of-specifying-a-parameter}, :action => 'ride'
然后在运行时,我想传递这个调用应该去的控制器名称。我的操作根据发送呼叫的控制器执行不同的操作。谢谢
Thomas 的回答是正确的,但是如果您希望 URL 格式具有更大的灵活性,您可以指定多个路由并通过添加每个路由来使用路由要求。:requirements
只有满足要求时,路线才会匹配。例如:
map.resources :rides, :path_prefix => '/:option',
:requirements => { :option => /one/ }, :controller => 'one'
map.resources :rides, :path_prefix => '/:option',
:requirements => { :option => /two/ }, :controller => 'two'
进而:
/one/rides
将会去OneController
/two/rides
将会去TwoController
这会起作用:
map.ride 'ride/:controller', :action => 'ride'
/ride/first
会打电话FirstController#ride
会/ride/second
打电话SecondController#ride