Rails 6 Devise 4.7 не находит подтверждения получить путь в поддомене администратора - PullRequest
0 голосов
/ 06 ноября 2019

Создание приложения 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>

но я получаюточно такой же результат.

Я не уверен, как действовать здесь, потому что у меня никогда не было такого раньше. Любая помощь здесь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...