我正在使用CanCan获得用户许可。我设置得很好并且有:
def initialize(user)
# Define abilities for the passed in user here. For example:
user ||= User.new # guest user (not logged in)
if user.role? :admin
can :manage, :all
else
can :create, Post
can :read, Post
end
def role?(role)
return !!self.roles.find_by_name(role.to_s.camelize)
end
我的问题是如何实际为用户提供角色,这意味着现在所有用户都属于其他类别...如何让用户与之关联:admin?
答案 0 :(得分:2)
执行此操作的简便方法是向用户添加字符串role
属性。
然后,在您的用户模型中:
def role?(arg)
self.role.to_sym == arg.to_sym
end
并删除Ability模型中的role?
方法,您的示例不需要它。