rails命名为routes + controller作为参数

时间:2010-05-26 10:18:14

标签: ruby-on-rails routes named-routing

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

e.g。 map.ride' ride',:controller => {some-way-of-specified-a-parameter},:action => '骑'

然后在运行时,我想传递此调用应该进入的控制器名称。我的行为正在做不同的事情,具体取决于呼叫被发送到哪个控制器。 感谢

2 个答案:

答案 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