2

我有一个具有类别的 Rails 3 应用程序。类别可由具有类别所有者角色的人管理。但是类别所有者应该只能访问他拥有的类别,而不是其他人。我可以使用 CanCan 锁定管理功能,但我需要自己限制特定类别。

4

1 回答 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 回答