2
我有一个具有类别的Rails 3应用程序。类别可以由具有类别所有者角色的人员管理。但是类别所有者只能访问他拥有的类别,而不能访问其他类别。我可以使用CanCan锁定管理功能,但我需要自行限制特定类别。Can Can可用于限制对单个模型的特定值的访问权限吗?
我有一个具有类别的Rails 3应用程序。类别可以由具有类别所有者角色的人员管理。但是类别所有者只能访问他拥有的类别,而不能访问其他类别。我可以使用CanCan锁定管理功能,但我需要自行限制特定类别。Can Can可用于限制对单个模型的特定值的访问权限吗?
你可以用两种方法之一来完成。
您可以指定属性的散列来限制您的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中描述。
谢谢!我被埋在Rails 3中我想我没有RTFM CanCan文档! – AKWF 2010-10-05 17:05:49