gpt4 book ai didi

ruby-on-rails-3 - 本地主机 : when accesing site area accept admin side 的未初始化常量 DashboardController

转载 作者:行者123 更新时间:2023-12-03 00:48:15 28 4
gpt4 key购买 nike

你好,当我使用 localhost:3000 打开我的网站时,我遇到了“未初始化常量 DashboardController”的问题。它向我显示了上述错误。它不允许我进入用户端。

我有很多供管理员和用户使用的模型,因此我需要解决此错误。

是的......我已经将 root :to => 'home/index' 定义为我的根文件,所以每当我在浏览器中写入 localhost 时,它都无法加载。

我已经为用户安装了 devise,为管理员安装了 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
<小时/><小时/>

New Question and its Answer :

<小时/>

如果您收到此错误,请执行此操作。

Processing by Admin::DashboardController#index as HTML Completed 401 Unauthorized in 1ms

当您尝试打开 localhost:3000/admin 并重定向到 localhost:3000/usrs/sign_in 时,会出现这种情况

然后您可以添加这三行,因此复制这三行并粘贴到 config/initializers/active_admin.rb 中的文件底部(在 ActiveAdmin.setup do |config| .... end 之后)。

 ActiveAdmin::BaseController.class_eval do
skip_before_filter :authenticate_user!
end

其实我有

before_action :authenticate_user!

在我的应用程序 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)

如果出现错误未初始化常量DashboardController,只需删除app/helpers/admin/中的所有内容

<小时/>

另一种方法是仅向您的用户表添加一个 is_admin 列。

然后,在 initializers/active_admin.rb 中添加以下内容:

config.authentication_method = :authenticate_admin_user!
config.current_user_method = :current_admin_user

这在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

这样,您就不需要 admin_user 表。只需将 is_admin 从 0 更改为 1,用户即可成为管理员。

关于ruby-on-rails-3 - 本地主机 : when accesing site area accept admin side 的未初始化常量 DashboardController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065598/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com