Создание приложения Rails 6 с Devise 4.7.
В настоящее время я пытаюсь подтвердить пользователя-администратора с ограничением на поддомен, например:
rout.rb
class BlankSubdomain
def self.matches?(request)
request.subdomain.blank?
end
end
class AdminSubdomain
def self.matches?(request)
request.subdomain == 'admin'
end
end
Rails.application.routes.draw do
constraints(BlankSubdomain) do
root 'static#home'
end
constraints(AdminSubdomain) do
devise_for :admins, path: '', path_names: { sign_in: 'login', sign_out: 'logout' },
controllers: {
passwords: 'admins/passwords',
sessions: 'admins/sessions',
unlocks: 'admins/unlocks',
confirmations: 'admins/confirmations'
}
devise_scope :admin do
root to: 'admins/sessions#new', as: :admin_root
end
get 'dashboard', :to => 'admin_dashboard#dashboard'
end
end
на данный моментвсе остальное работает как надо, я удалил модуль регистрации из модели администратора, так как он будет создаваться только мной через импорт Excel или devise_invitable (в будущем) (не общедоступная модель)
поэтому, когда я пытаюсь подтвердить Admin, я получаю следующую ошибку:
ActionController::RoutingError (No route matches [GET] "/confirmation")
Когда я просматриваю мои маршруты рельсов, вывод показывает, что он существует следующим образом:
Prefix Verb URI Pattern Controller#Action
root GET / static#home
new_admin_session GET /login(.:format) admins/sessions#new
admin_session POST /login(.:format) admins/sessions#create
destroy_admin_session DELETE /logout(.:format) admins/sessions#destroy
new_admin_password GET /password/new(.:format) admins/passwords#new
edit_admin_password GET /password/edit(.:format) admins/passwords#edit
admin_password PATCH /password(.:format) admins/passwords#update
PUT /password(.:format) admins/passwords#update
POST /password(.:format) admins/passwords#create
new_admin_confirmation GET /confirmation/new(.:format) admins/confirmations#new
admin_confirmation GET /confirmation(.:format) admins/confirmations#show
POST /confirmation(.:format) admins/confirmations#create
new_admin_unlock GET /unlock/new(.:format) admins/unlocks#new
admin_unlock GET /unlock(.:format) admins/unlocks#show
POST /unlock(.:format) admins/unlocks#create
admin_root GET / admins/sessions#new
dashboard GET /dashboard(.:format) admin_dashboard#dashboard
ивидя, что это относится к администраторам и имеет свои собственные контроллеры и представления, я обновил почтовую программу подтверждения следующим образом:
<p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token, subdomain: 'admin') %></p>
Я также попытался так:
<p><%= link_to 'Confirm my account', admin_confirmation_url(confirmation_token: @token, subdomain: 'admin') %></p>
но я получаюточно такой же результат.
Я не уверен, как действовать здесь, потому что у меня никогда не было такого раньше. Любая помощь здесь будет принята с благодарностью!