在这一点上,我一直在使用 rails_admin v0.7.0 和清除 gem。我今天尝试将 rails_admin 更新到 v1.0,但收到未定义的变量或方法错误current_user
。在 v0.7.0 中,它似乎RailsAdmin::MainController
继承自ApplicationController
,而在 v1.0 中,它直接继承自ActionController::Base
,这将解释current_user
现在未定义(我相信current_user
是ApplicationController
用清除宝石定义的)。但是,由于我没有找到其他有此问题的人,我想我一定错过了一些东西。
我不是在这个应用程序上设置许可的人,但我认为我们不会对它做任何会影响这一点的非标准行为。Clearance::Controller
包含在ApplicationController
. 无特殊定义current_user
。
配置/初始化程序/rails_admin.rb
RailsAdmin.config do |config|
# Popular gems integration
## Clearance
config.authorize_with do |controller|
unless current_user.admin?
redirect_to(
main_app.root_path,
alert: "You are not permitted to view this page"
)
end
end
config.current_user_method { current_user }
end