首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Devise + Administrate: ActionController::RoutingError -未初始化的常量Admin::SessionsController:

Devise + Administrate: ActionController::RoutingError -未初始化的常量Admin::SessionsController:
EN

Stack Overflow用户
提问于 2021-02-13 23:02:05
回答 1查看 54关注 0票数 0

我创建了一个rails (6.0.3)应用程序,并添加了thoughtbot/administratedevise。我有一个普通用户的User模型和另一个AdminUser。我希望将这两种类型的用户分开。两者都是用devise生成器创建的

代码语言:javascript
复制
$ rails generate devise User
$ rails generate devise AdminUser

我在管理和设计范围的路由配置方面遇到了问题。

代码语言:javascript
复制
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。这里有个例外:

代码语言:javascript
复制
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

管理应用程序控制器如下所示:

代码语言:javascript
复制
module Admin
  class ApplicationController < Administrate::ApplicationController
    before_action :authenticate_admin_user!

    protected

    def authenticate_admin_user!
      authenticate_admin_admin_user!
    end
  end
end

LMK如果我遗漏了一些有用的东西。提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 15:19:14

该错误告诉您必须定义您的控制器。

代码语言:javascript
复制
admin/session_controller.rb

因此,创建一个从devise session扩展而来的控制器,因为您正在使用不同于普通用户的session,所以您还必须定义管理员用户的控制器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66186510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档