2013-08-23 49 views
2

我很难理解CanCan的工作原理。我有以下型号了解CanCan初始化方法

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

当涉及到我的rails_admin文件中的文件夹initializers

RailsAdmin.config do |config| 
    config.authorize_with :cancan 

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

    config.current_user_method { } # auto-generated 
end 

我想有一个用户访问与电子邮件管理员仪表板“[email protected] “,但CanCan如何知道当前谁正在登录?它是否依赖于我缺少的帮手方法?

回答

4

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

+0

我有一个'UserSessionsHelper'模块,使用'current_user'方法来处理当前登录的用户。我想我不需要担心其他事情。 – jason328