首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Pundit处理分页?

如何使用Pundit处理分页?
EN

Stack Overflow用户
提问于 2014-04-02 20:24:37
回答 2查看 640关注 0票数 2

我刚刚开始在Rails4应用程序中使用Pundit gem进行授权。

一切都很顺利,但我可以理解分页在索引操作中的工作方式。

我的控制器的索引操作如下所示:

代码语言:javascript
复制
def index
   @records = policy_scope(Record)
end

然后,我的RecordPolicy中的Scope类是:

代码语言:javascript
复制
 class Scope < Struct.new(:user, :scope)
    def resolve
      if user.has_role? :admin
        # get all records
      else
        # get user specific records
      end
    end
  end

这一切都运行得很好。我想知道我将如何处理分页。当然,这涉及到传入一个页面参数等,我不确定如何在不对Scope类进行子类化的情况下做到这一点。

EN

回答 2

Stack Overflow用户

发布于 2014-08-31 23:07:57

policy_scope(Record)方法返回一个ActiveRecord::Relation对象,然后您可以根据使用的gem (will_paginatekaminari)链接分页方法。

代码语言:javascript
复制
def index
  @records = policy_scope(Record).paginate(params[:page])
end
票数 3
EN

Stack Overflow用户

发布于 2017-01-30 18:25:28

为谷歌员工准备的。上面的答案在技术上是正确的,但是对于最新版本的Kaminari (我的是0.17),链的方法是page(params[:page])

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22811409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档