Пользовательское добавление: новые маршруты с помощью направляющих 3 маршрутизации

В направляющих 2 мы можем добавить пользовательский new действия к находчивым маршрутам, как:

map.resources :users, :new => {:apply => :get}

Как мы достигаем того же самого в направляющих 3?

resources :users do

  get :apply, :on => :new    # does not work

  new do
    get :apply               # also does not work
  end

end

Какие-либо идеи?

6
задан aaronrussell 15 June 2010 в 11:04
поделиться

2 ответа

Вы можете использовать :path_names, как объясняется в руководстве по маршрутизации границ:

resources :users, :path_names => { :new => "apply" }

Это только изменит путь на apply, он все равно будет направлен к new действию. Я не думаю, что изменение этого пути поддерживается в явном виде (что, вероятно, хорошо).

Если вы хотите сохранить действие apply, вам, вероятно, стоит это сделать:

resources :users, :except => :new do
  collection do
    get :apply
  end
end

Но это заставляет задуматься, не лучше ли просто переименовать действие apply в new.

6
ответ дан 10 December 2019 в 00:33
поделиться

Попробуйте следующее:

resources :users, :path_names => { :new => 'apply' }

Обратите внимание, что если вы хотите переназначить новый маршрут на , примените для всех ваших маршрутов, тогда вы можете использовать область действия:

scope :path_names => { :new => 'apply' } do
  # The rest of your routes go here...
end
4
ответ дан 10 December 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: