2

是否可以在名为 route 的 rails 中将控制器值作为参数,我可以在运行时将其传递以将调用定向到正确的控制器?

例如 map.ride 'ride' ,:controller => {some-way-of-specifying-a-parameter}, :action => 'ride'

然后在运行时,我想传递这个调用应该去的控制器名称。我的操作根据发送呼叫的控制器执行不同的操作。谢谢

4

2 回答 2

2

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

于 2010-05-26T13:22:23.160 回答
1

这会起作用:

map.ride 'ride/:controller', :action => 'ride'

/ride/first会打电话FirstController#ride/ride/second打电话SecondController#ride

于 2010-05-26T12:58:44.380 回答