2013-08-23 79 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