Ruby on rails 名为routes+;控制器作为参数

Ruby on rails 名为routes+;控制器作为参数,ruby-on-rails,routes,named-routing,Ruby On Rails,Routes,Named Routing,是否可以将rails中名为route的控制器值作为参数,我可以在运行时传递该参数以将调用定向到适当的控制器 e、 g。 map.ride'ride',:controller=>{some-way-of-specifying-a-parameter},:action=>'ride' 然后在运行时,我想传递这个调用应该指向的控制器名称。根据呼叫发送到哪个控制器,我的操作会做不同的事情。 谢谢这样可以: map.ride 'ride/:controller', :action => 'ride'

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

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

然后在运行时,我想传递这个调用应该指向的控制器名称。根据呼叫发送到哪个控制器,我的操作会做不同的事情。 谢谢

这样可以:

map.ride 'ride/:controller', :action => 'ride'
/ride/first
将调用
FirstController#ride
/ride/second
将调用
SecondController#ride

答案是正确的,但是如果您希望URL格式更灵活,您可以通过在每个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

多亏了Tomas-但是,我该如何指定控制器的名称?使用上面的方法,我通常会得到可用的ride_路径,我想做一些类似ride_路径的事情(:controller=>'first')。那行吗?不用担心,我已经弄明白了,非常感谢,这就是我想要的