【问题标题】:user is nil in CanCan initializer with Rails 4用户在使用 Rails 4 的 CanCan 初始化程序中为零
【发布时间】:2014-04-16 13:50:11
【问题描述】:

信息:

  • Rails 4.0.2
  • CanCan(1.6.10)
  • 设计 (3.2.4)
  • ActiveAdmin (1.0.0.pre)

我正在尝试使用 cancan gem 来管理访问我的后台 (activeadmin) 的权限。 我跟着这里:教程http://www.activeadmin.info/docs/13-authorization-adapter.html#using_the_cancan_adapter

问题是“用户”变量在 cancan 的初始化程序中始终为零,即使有用户登录。

这是我的代码:

class Ability
  include CanCan::Ability

  def initialize(user)
    return unless user

    if user.has_operator_role? :active_admin
      can :manage, ActiveAdmin::Page, name: 'Dashboard'
  end
end

我在“return unless user”行之前放置了一个调试器,并且“user”变量始终为零。 在视图中,“current_user”变量设置正确。

感谢您的帮助!

编辑

我也尝试过 CanCanCan gem,但没有解决问题!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 devise activeadmin cancan


    【解决方案1】:

    CanCan 在 Rails 4 中已死并且几乎不支持。

    你可以试试:

    https://github.com/CanCanCommunity/cancancan

    【讨论】:

    • 好像没有解决问题! “用户”仍然为零。我认为这是因为 ActiveAdmin 控制器中没有设置“current_user”?如何设置?谢谢!
    • 解决了!我必须在 active_admin 配置文件中指定 current_user_method:“config.current_user_method = :current_user”。简单...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    相关资源
    最近更新 更多