Rails - 记录级acl的解决方案

时间:2011-09-13 21:41:46

标签: ruby-on-rails acl

我发现许多插件在控制器方法级别实现访问控制,但我有一些特殊情况:

例如,我们有PostsController #index

def index
  @posts = Posts.all
end

我想获得范围记录 - > where(:user_id => current_user.id)。 这很简单,但我想在acl级别上执行此操作。 当然,范围和条件可能要复杂得多,例如 - > “仅审核在特定国家/地区发布的帖子”等。

1 个答案:

答案 0 :(得分:2)

最简单的方法是通过关联而不是额外的插件来解决这个问题。

 current_user.posts.all

 country = Country.find(...)
 country.posts.all

 ...

可读性,性能和灵活性的完美平衡。