你好,当我用localhost:3000打开我的网站时,我遇到了"未初始化的常量DashboardController"问题.它告诉我上面的错误.它不允许我进入用户端.
我有很多管理员以及用户的模型,所以我需要这个错误的解决方案.
是这样....我已经定义了root:to =>'home/index'作为我的根文件,因此每当我在浏览器中编写localhost时它都无法加载.
我为用户安装了devise,为admin安装了active-admin.
// for devise user session
controller :sessions do
get 'login' => :new
post 'login' => :create
delete 'logout' => :destroy
end
root :to => 'home#activity_list' //for localroot
Run Code Online (Sandbox Code Playgroud)
新问题及其答案:
如果您收到此错误,那么jus会这样做.
由Admin :: DashboardController处理#index为HTML已完成401在1ms内未经授权
当您尝试打开localhost:3000/admin并且它重定向到localhost:3000/usres/sign_in时会出现这种情况
然后你可以添加这三行,所以复制这三行并粘贴在config/initializers/active_admin.rb文件的底部(在ActiveAdmin.setup do | config | .... end之后).
ActiveAdmin::BaseController.class_eval do
skip_before_filter :authenticate_user!
end
Run Code Online (Sandbox Code Playgroud)
其实我有
before_action:authenticate_user!
在我的application_controller中.
只需打开ActiveAdmin :: BaseController并将skip_before_filter放在那里.
在routes.rb中:
root :to => 'frontpage#index' # MUST be before ActiveAdmin (as SSR said)
devise_scope :users do # Must also be before ActiveAdmin
root :to => "frontpage#index"
end
namespace :admin do
root to: 'users#index' # if you want to be on user by default on the admin
#resources :dashboard <= Remove this line if you have it
end
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
devise_for :users, :controllers => {:omniauth_callbacks => 'omniauth_callbacks'}
ActiveAdmin.routes(self)
Run Code Online (Sandbox Code Playgroud)
如果出现错误uninitialized constant DashboardController,只需删除其中的所有内容app/helpers/admin/
另一种方法是仅is_admin向用户表添加一列。
然后,将其添加到initializers/active_admin.rb:
config.authentication_method = :authenticate_admin_user!
config.current_user_method = :current_admin_user
Run Code Online (Sandbox Code Playgroud)
而这在application_controller.rb
def authenticate_admin_user!
if !current_user.is_admin
flash[:error] = "You must be admin to access this page."
redirect_to root_path
return
end
end
Run Code Online (Sandbox Code Playgroud)
这样,您就不需要 admin_user 表。只需将 is_admin 从 0 更改为 1,用户即可成为管理员。
| 归档时间: |
|
| 查看次数: |
2473 次 |
| 最近记录: |