我发现许多插件在控制器方法级别实现访问控制,但我有一些特殊情况:
例如,我们有PostsController #index
def index
@posts = Posts.all
end
我想获得范围记录 - > where(:user_id => current_user.id)
。
这很简单,但我想在acl级别上执行此操作。
当然,范围和条件可能要复杂得多,例如 - > “仅审核在特定国家/地区发布的帖子”等。
答案 0 :(得分:2)
最简单的方法是通过关联而不是额外的插件来解决这个问题。
current_user.posts.all
country = Country.find(...)
country.posts.all
...
可读性,性能和灵活性的完美平衡。