Я работаю над проектом Rails 5.2, который использует Devise для управления моделью User
. Я хочу, чтобы пользователи могли регистрироваться и позволять администраторам создавать учетные записи от их имени. Я настроил модель User
с Devise и сгенерировал контроллеры области (и представления) для ресурса. Это относится к аспекту самостоятельной регистрации, а для регистрации, инициированной администратором, я создал users_controller
в качестве стандартного контроллера restful, а в маршрутах соответственно настроил маршрут ресурсов. Похоже, это работает для всего, кроме users#create
маршрута действия, конфликтующего с маршрутом, созданным devise_for
для users/registrations#create
(см. Сгенерированные маршруты ниже). Это заставляет users#new
отправку форм неправильно обрабатываться устройством users/registrations#create
вместо users#create
.
Как лучше всего сделать маршруты *#create
уникальными?
routes.rb
Rails.application.routes.draw do
devise_for :users, controllers: { sessions: 'users/sessions', registrations: 'users/registrations' }
resources :users
end
Сгенерированные маршруты
new_user_session GET /users/sign_in(.:format) users/sessions#new
user_session POST /users/sign_in(.:format) users/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) users/sessions#destroy
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
user_password PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
POST /users/password(.:format) devise/passwords#create
cancel_user_registration GET /users/cancel(.:format) users/registrations#cancel
new_user_registration GET /users/sign_up(.:format) users/registrations#new
edit_user_registration GET /users/edit(.:format) users/registrations#edit
user_registration PATCH /users(.:format) users/registrations#update
PUT /users(.:format) users/registrations#update
DELETE /users(.:format) users/registrations#destroy
POST /users(.:format) users/registrations#create
---
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy