Rails 5: Как переписать параметры маршрута для дополнительного маршрута участника - PullRequest
0 голосов
/ 03 июня 2018

В Rails 5 я разобрался, как

  1. Перезаписать параметр маршрута с id на что-то вроде name
  2. Добавить еще один маршрут для ресурса

Так что мой route.rb выглядит примерно так

Rails.application.routes.draw do

  resources :cats, param: :name

  resources :cats do
    get :preview, on: :member
  end

end

Однако я заметил, что мой дополнительный маршрут previewне сохраняет перезаписанный именованный параметр маршрута.Вместо этого, при просмотре выходных данных с рейк-маршрутов у меня есть что-то похожее на это.

GET /cats/:id/preview(.:format)

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

GET /cats/:name/preview(.:format)

Как мне оба добавить дополнительный маршрут к ресурсу при перезаписи параметра?

1 Ответ

0 голосов
/ 03 июня 2018

Вы дублируете свои записи маршрутов для cats, и вы предоставили блок для объявления маршрута preview в записи, в которой отсутствует переопределение имени параметра.Вы должны предоставить переопределение и блок в одном и том же объявлении маршрута.

Rails.application.routes.draw do

  resources :cats, param: :name do
    get :preview, on: :member
  end
end

Это даст вам нужный маршрут:

$ rake routes
           Prefix Verb   URI Pattern                      Controller#Action
      preview_cat GET    /cats/:name/preview(.:format)    cats#preview
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...