Ruby on rails 名为routes+;控制器作为参数
是否可以将rails中名为route的控制器值作为参数,我可以在运行时传递该参数以将调用定向到适当的控制器 e、 g。 map.ride'ride',:controller=>{some-way-of-specifying-a-parameter},:action=>'ride' 然后在运行时,我想传递这个调用应该指向的控制器名称。根据呼叫发送到哪个控制器,我的操作会做不同的事情。 谢谢这样可以: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'
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')。那行吗?不用担心,我已经弄明白了,非常感谢,这就是我想要的