2013-05-07 114 views
0

在我的Rails应用程序中,我的用户可以登录一次并根据需要在帐户之间切换。当他们这样做时,我需要重新初始化他们的能力,因为权限是在数据库中的帐户级设置的。CanCan功能定义

我最初的想法是当我检测到账户中的变化但不知道如何完成这个时,初始化能力类。

我当然可以接受任何其他想法。我是CanCan的新手。

+1

“能力”实例与您的Rails应用程序中几乎所有其他对象一样,都是为每个请求创建和销毁的。您不需要手动重新初始化它。 – 2013-05-07 21:21:57

回答

0

Ability类是定义所有用户权限的地方。

实施例:

class Ability 

    include CanCan::Ability 

    def initialize(user) 
    user ||= User.new # guest user (not logged in) 
    if user.admin? 
     can :manage, :all 
    else 
     can :read, :all 
    end 
    end 
end 

的“可”的方法是用来定义权限,并且需要两个参数。第一个是您设置权限的操作,第二个是您设置的对象类。