На самом деле, я использую две модели для своего приложения, которые являются пользователем и администратором, и я следил за каждым шагом, который нужно выполнить при использовании драгоценного камня.Ошибка маршрутизации с несколькими моделями - devise rails
И я хотел бы иметь несколько sign_up. Когда пользователь sign_up должен быть перенаправлен на страницу User sign_up и когда Admin sign_up, необходимо перенаправить на страницу Admin sign_up, чтобы сделать регистрацию.
Когда я выполняю ссылку sign_up под пользователем, он дает мне ошибку маршрутизации, которая приведена ниже;
И когда я выполняю ссылку sign_up под Администратором, она дает мне ошибку маршрутизации, которая приведена ниже;
Routing Error
uninitialized constant Admins::RegistrationsController
routes.rb
Rails.application.routes.draw do
root "home#index"
devise_for :users, controllers: {
sessions: 'users/sessions',
registrations: 'users/registrations'
}
get '/aslani' => 'aslani#index', as: :authenticated_user_root
devise_for :admins, controllers: {
sessions: 'admins/sessions',
registrations: 'admins/registrations'
}
get '/kola' => 'kola#index', as: :authenticated_admin_root
end
Аслани/index.html.erb
<% if user_signed_in? %>
I am Aslani.
<%= link_to 'Log out', destroy_user_session_path, method: :delete %>
<% else %>
<%= link_to 'Log In', new_user_session_path %>
<%= link_to 'Sign Up', new_user_registration_path %>
<% end %>
Kola/index.html.erb
<% if admin_signed_in? %>
I am Kola.
<%= link_to 'Log out', destroy_admin_session_path, method: :delete %>
<% else %>
<%= link_to 'Log In', new_admin_session_path %></li>
<%= link_to 'Sign Up', new_admin_registration_path %>
<% end %>
приложение/контроллеры/пользователей /sessions_controller.rb
class Users::SessionsController < Devise::SessionsController
def new
super
end
def create
self.resource = warden.authenticate!(auth_options)
sign_in(resource_name, resource)
yield resource if block_given?
respond_with resource, location: after_sign_in_path_for(resource)
end
end
приложение/контроллеры/админов/sessions_controller.rb
class Admins::SessionsController < Devise::SessionsController
def new
super
end
def create
self.resource = warden.authenticate!(auth_options)
sign_in(resource_name, resource)
yield resource if block_given?
respond_with resource, location: after_sign_in_path_for(resource)
end
end
приложение/контроллеры/пользователи/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
super
end
def update
super
end
end
приложение/контроллеры/админов/registrations_controller.rb
class Admins::RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
super
end
def update
super
end
end
Любые предложения приветствуются.
Заранее спасибо.
ли вам Кроме того, у вас есть overrideen registrationscontroller? –
Спасибо за ответ. Да, у меня есть переопределенные registrations_controllers для пользователя и администратора. –
Проблемы с ошибкой маршрутизации решены, но я получаю Отсутствующие пользователи шаблонов/регистрации/создания и пропуски шаблонов админов/регистрации/создания ошибок. Просто посмотрите, что я обновил свой пост. –