了解CanCan初始化方法

时间:2013-08-23 18:48:02

标签: ruby ruby-on-rails-4 cancan rails-admin

我很难理解CanCan的工作原理。我有以下型号

class Ability
  include CanCan::Ability
  def initialize(user)
    if user && user.email == "jason@gmail.com"
      can :access, :rails_admin       # only allow admin users to access Rails Admin
      can :dashboard                  # allow access to dashboard
    end
  end
end

涉及initializers文件夹

中的rails_admin文件
RailsAdmin.config do |config|
  config.authorize_with :cancan

  config.main_app_name = ['Pr', 'Admin']

  config.current_user_method { } # auto-generated
end

我想让一个用户使用电子邮件“jason@gmail.com”访问管理员信息中心,但CanCan如何知道当前谁登录?它是否依赖于我缺少的辅助方法?

1 个答案:

答案 0 :(得分:4)

CanCan使用current_ability方法提供能力and in that it uses current_user。我知道至少Devise有这种方法,其他auth框架也必须通常提供它,不确定。