рельсы назвали маршруты + контроллер в качестве параметра - PullRequest
2 голосов
/ 26 мая 2010

возможно ли иметь значение контроллера в рельсах с именем route в качестве параметра, который я могу передать во время выполнения для направления вызова на соответствующий контроллер?

например. map.ride 'ride',: controller => {некоторый способ указания параметра},: action => 'ride'

затем во время выполнения я хочу передать имя контроллера, на который должен идти этот вызов. Мои действия делают разные вещи в зависимости от того, на какой контроллер отправляется звонок. спасибо

Ответы [ 2 ]

2 голосов
/ 26 мая 2010

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

1 голос
/ 26 мая 2010

Это будет работать:

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

/ride/first будет звонить FirstController#ride, а /ride/second будет звонить SecondController#ride

...