gpt4 book ai didi

ruby-on-rails - 'current_user' 在 rails_admin 中未定义,但有许可

转载 作者:行者123 更新时间:2023-12-04 16:51:20 25 4
gpt4 key购买 nike

到目前为止,我一直在使用 rails_admin v0.7.0 和清除 gem 成功地。我今天尝试将 rails_admin 更新到 v1.0,但我收到了 current_user 的 undefined variable 或方法错误.在 v0.7.0 中,似乎 RailsAdmin::MainController继承自 ApplicationController ,而在 v1.0 中它直接继承自 ActionController::Base ,这将解释 current_user现在是未定义的(我相信 current_user 是在 ApplicationController 中用清仓 gem 定义的)。但是,由于我没有找到其他人有这个问题,我想我一定是遗漏了一些东西。

我不是在这个应用程序上设置许可的人,但我认为我们没有对它做任何会影响它的非标准操作。 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

最佳答案

您是正确的,Rails Admin 继承自 ::ActionController::Base默认情况下,这就是导致您出现问题的原因。幸运的是,修复很简单。添加 config.parent_controller = "::ApplicationController"config/initializers/rails_admin.rb :

RailsAdmin.config do |config|

## == Clearance ==
config.parent_controller = "::ApplicationController"

config.authorize_with do |controller|
unless current_user && current_user.admin?
redirect_to(
main_app.root_path,
alert: "You are not permitted to view this page"
)
end
end

# You actually don't need this line
# config.current_user_method { current_user }
end

我创建了一个 reference repo here有需要的可以对比一下。

关于ruby-on-rails - 'current_user' 在 rails_admin 中未定义,但有许可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39971235/

25 4 0
文章推荐: F# 位标志枚举
文章推荐: maven - 使用 Kotlin 综合属性
文章推荐: firebase - 为存储在 Google BigQuery 中的 Firebase 事件在一行中选择多个事件参数
文章推荐: fullcalendar - FullCalendar-自定义
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com