我有一个包含Categories的Rails 3应用程序。类别可由具有类别所有者角色的人员管理。但类别所有者应该只能访问他拥有的类别,而不能访问其他类别。我可以使用CanCan锁定管理功能,但我需要自己限制特定的类别。
答案 0 :(得分:5)
您可以通过以下两种方式之一来完成。
您可以指定属性哈希以限制Ability
类中的访问权限。
can :manage, Category, :user_id => user.id
或者你可以使用一个块:
can :manage, Category do |c|
c && c.user_id == user.id
end
这些都会检查您要检查的类别的user_id
属性是否与您要检查的用户匹配。
这些内容分别在CanCan文档中的Defining Abilities with Hashes和Defining Abilities with Blocks下进行了描述。