Rails несколько маршрутов, то же `как` - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть следующие маршруты:

authenticated :user do
    scope module: 'admin', path: ':publisher_id' do
      get 'settings/general', to: 'publishers#index', as: 'publisher_settings'
      post 'settings/general', to: 'publishers#create'
      put 'settings/general', to: 'publishers#update'
    end
end

Однако первый as: можно использовать только один раз.Как я могу применить это ко всем этим маршрутам?Я хочу, чтобы все они работали на publisher_settings_path

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

publisher_settings_path уже возвращает путь трех маршрутов, например, /admin/settings/general. Так что вам не нужно устанавливать as: несколько раз.

И на самом деле установка одного и того же as: несколько раз для нескольких маршрутов не имеет смысла, она должна возвращать одно значение.

0 голосов
/ 18 ноября 2018

Вы также можете передать параметр as в пространства имен и области в Rails Routes.

# prefix the routing helper name: +sekret_posts_path+ instead of +posts_path+
scope as: "sekret" do
  resources :posts
end

Источник: https://api.rubyonrails.org/v5.1/classes/ActionDispatch/Routing/Mapper/Scoping.html

Это также должно работать, хотя я думаю

Rails.application.routes.draw do
 resources :publishers, only: [:create, :update, :index], path: 'settings/general', as: 'publisher_settings'
end

Получи меня

 publisher_settings GET   /settings/general(.:format)     publishers#index
                   POST  /settings/general(.:format)     publishers#create
 publisher_setting PATCH /settings/general/:id(.:format) publishers#update
                   PUT   /settings/general/:id(.:format) publishers#update
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...