是否可以将名为route的rails中的控制器值作为参数,我可以在运行时将其传递给正确的控制器?
e.g。 map.ride' ride',:controller => {some-way-of-specified-a-parameter},:action => '骑'
然后在运行时,我想传递此调用应该进入的控制器名称。我的行为正在做不同的事情,具体取决于呼叫被发送到哪个控制器。 感谢
答案 0 :(得分:2)
Thomas'答案是正确的,但是如果您希望更灵活地使用网址格式,则可以指定多个路由,并通过在每个路由上添加:requirements
来使用route 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
答案 1 :(得分:1)
这样可行:
map.ride 'ride/:controller', :action => 'ride'
/ride/first
会致电FirstController#ride
而/ride/second
会致电SecondController#ride