取自:https ://github.com/inossidabile/protector/issues/10
我希望能够根据连接表设置权限。
所以...
Post.restrict!(current_user).joins(:category)
在这种情况下,当前用户无法直接访问类别,但可以通过 Post 获取类别。我将如何做到这一点?它正在应用默认类别范围,我看不到一种方法可以根据连接表使其成为条件。
取自:https ://github.com/inossidabile/protector/issues/10
我希望能够根据连接表设置权限。
所以...
Post.restrict!(current_user).joins(:category)
在这种情况下,当前用户无法直接访问类别,但可以通过 Post 获取类别。我将如何做到这一点?它正在应用默认类别范围,我看不到一种方法可以根据连接表使其成为条件。
请仔细阅读: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