【发布时间】:2010-10-05 15:48:24
【问题描述】:
我有一个具有类别的 Rails 3 应用程序。类别可由具有类别所有者角色的人管理。但是类别所有者应该只能访问他拥有的类别,而不是其他人。我可以使用 CanCan 锁定管理功能,但我需要自己限制特定类别。
【问题讨论】:
标签: ruby-on-rails cancan
我有一个具有类别的 Rails 3 应用程序。类别可由具有类别所有者角色的人管理。但是类别所有者应该只能访问他拥有的类别,而不是其他人。我可以使用 CanCan 锁定管理功能,但我需要自己限制特定类别。
【问题讨论】:
标签: ruby-on-rails cancan
您可以通过以下两种方式之一进行操作。
您可以指定一个属性哈希来限制您的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 下进行了描述。
【讨论】: