设计 + 管理:ActionController::RoutingError - 未初始化常量 Admin::SessionsController:
Devise + Administrate: ActionController::RoutingError - uninitialized constant Admin::SessionsController:
我创建了一个 rails (6.0.3) 应用程序并添加了 thoughtbot/administrate and devise。
我有一个针对普通用户的 User
模型和另一个 AdminUser
。我想将两种类型的用户分开。两者都是用设计生成器创建的
$ rails generate devise User
$ rails generate devise AdminUser
我在管理和设计范围的路由配置方面遇到问题。
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
我想我遗漏了一些东西,因为它在我转到 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
管理应用程序控制器如下所示:
module Admin
class ApplicationController < Administrate::ApplicationController
before_action :authenticate_admin_user!
protected
def authenticate_admin_user!
authenticate_admin_admin_user!
end
end
end
LMK 如果我遗漏了一些有用的东西。
提前致谢
错误提示您必须定义控制器。
admin/session_controller.rb
因此创建一个从设计会话扩展的控制器,因为您使用的会话与普通用户不同,因此您也必须定义管理员用户控制器。
我创建了一个 rails (6.0.3) 应用程序并添加了 thoughtbot/administrate and devise。
我有一个针对普通用户的 User
模型和另一个 AdminUser
。我想将两种类型的用户分开。两者都是用设计生成器创建的
$ rails generate devise User
$ rails generate devise AdminUser
我在管理和设计范围的路由配置方面遇到问题。
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
我想我遗漏了一些东西,因为它在我转到 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
管理应用程序控制器如下所示:
module Admin
class ApplicationController < Administrate::ApplicationController
before_action :authenticate_admin_user!
protected
def authenticate_admin_user!
authenticate_admin_admin_user!
end
end
end
LMK 如果我遗漏了一些有用的东西。 提前致谢
错误提示您必须定义控制器。
admin/session_controller.rb
因此创建一个从设计会话扩展的控制器,因为您使用的会话与普通用户不同,因此您也必须定义管理员用户控制器。