0

取自:https ://github.com/inossidabile/protector/issues/10

我希望能够根据连接表设置权限。

所以...

Post.restrict!(current_user).joins(:category)

在这种情况下,当前用户无法直接访问类别,但可以通过 Post 获取类别。我将如何做到这一点?它正在应用默认类别范围,我看不到一种方法可以根据连接表使其成为条件。

4

1 回答 1

0

请仔细阅读:https ://github.com/inossidabile/protector#self-aware-conditions 。如您所见,您可以接受限制块的第二个参数。在那里,你可以得到它的任何属性或任何嵌套的关联。所以在你的情况下,它可能是这样的:

protect do |user, post|
  if post.try(:category) && post.category.anything == 'foobar'
    # Whatever you want to allow or disallow here
  end
end
于 2013-07-09T07:33:41.103 回答