[英]Devise + Administrate: ActionController::RoutingError - uninitialized constant Admin::SessionsController:
我創建了一個 rails (6.0.3) 應用程序,並添加了thinkbot/administrate和devise 。 我有一個普通用戶的User
model 和另一個AdminUser
。 我想將兩種類型的用戶分開。 兩者都是使用 devise 生成器創建的
$ rails generate devise User
$ rails generate devise AdminUser
我在管理和 devise scope 的路由配置時遇到問題。
Rails.application.routes.draw do
devise_for :users
devise_scope :user do
get 'log-in', to: 'devise/sessions#new'
get 'sign-up', to: 'devise/registrations#new'
delete 'log-out', to: 'devise/sessions#destroy'
get 'reset-password', to: 'devise/passwords#new'
end
root 'pages#index'
get '/dashboard', to: 'pages#dashboard'
namespace :admin do
devise_for :admin_users
resources :users
resources :groups
root to: 'users#index'
end
end
我想我錯過了一些東西,因為當我 go 到localhost:3000/admin
並且它重定向到http://localhost:3000/admin/admin_users/sign_in
時它會拋出異常。 這里例外:
Started GET "/admin" for ::1 at 2021-02-13 11:58:13 -0300
Processing by Admin::UsersController#index as HTML
Completed 401 Unauthorized in 2ms (ActiveRecord: 0.0ms | Allocations: 207)
Started GET "/admin/admin_users/sign_in" for ::1 at 2021-02-13 11:58:13 -0300
ActionController::RoutingError - uninitialized constant Admin::SessionsController:
Started POST "/__better_errors/6ee21cb1da542538/variables" for ::1 at 2021-02-13 11:58:13 -0300
管理應用程序 controller 如下所示:
module Admin
class ApplicationController < Administrate::ApplicationController
before_action :authenticate_admin_user!
protected
def authenticate_admin_user!
authenticate_admin_admin_user!
end
end
end
LMK 如果我錯過了一些有用的東西。 提前致謝
該錯誤告訴您必須定義 controller。
admin/session_controller.rb
So create a controller which extended from devise session as you are using session different for normal user so you have to define admin users controller too.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.