Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-记录级acl的解决方案_Ruby On Rails_Acl - Fatal编程技术网

Ruby on rails Rails-记录级acl的解决方案

Ruby on rails Rails-记录级acl的解决方案,ruby-on-rails,acl,Ruby On Rails,Acl,我发现很多插件在控制器方法级别实现访问控制,但我有一些特殊情况: 例如,我们有PostsController#索引 我想获取范围为->的记录,其中(:user\u id=>current\u user.id)。 这很简单,但我想在acl级别上这样做。 当然,范围和条件可能要复杂得多,比如->“仅检索在特定国家发布的帖子”等。最简单的方法是通过关联而不是额外的插件来解决这个问题 current_user.posts.all country = Country.find(...) count

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

例如,我们有PostsController#索引

我想获取范围为->
的记录,其中(:user\u id=>current\u user.id)
。 这很简单,但我想在acl级别上这样做。
当然,范围和条件可能要复杂得多,比如->“仅检索在特定国家发布的帖子”等。

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

 current_user.posts.all

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

 ...

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

这里的ACL是什么意思?您给出的两个示例听起来仍然像是范围合成。
 current_user.posts.all

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

 ...