我有一个具有类别的 Rails 3 应用程序。类别可由具有类别所有者角色的人管理。但是类别所有者应该只能访问他拥有的类别,而不是其他人。我可以使用 CanCan 锁定管理功能,但我需要自己限制特定类别。
问问题
1612 次
1 回答
5
您可以通过以下两种方式之一进行。
您可以指定属性的散列来限制Ability
类中的访问。
can :manage, Category, :user_id => user.id
或者你可以使用一个块:
can :manage, Category do |c|
c && c.user_id == user.id
end
它们都检查user_id
您要检查的类别的属性是否与您要检查的用户匹配。
这些在 CanCan 文档中分别在使用哈希定义能力和使用块定义能力下进行了描述。
于 2010-10-05T16:14:57.117 回答