gpt4 book ai didi

ruby-on-rails - 如何使用 Pundit 处理分页?

转载 作者:行者123 更新时间:2023-12-02 04:32:06 24 4
gpt4 key购买 nike

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

一切都很顺利,但我可以了解分页在索引操作中如何工作。

我的 Controller 的索引操作如下所示:

def index
@records = policy_scope(Record)
end

我的 RecordPolicy 中的 Scope 类然后变为:

 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 类的情况下执行此操作。

最佳答案

policy_scope(Record) 方法返回一个 ActiveRecord::Relation 对象,然后您可以链接分页方法,具体取决于您使用的 gem (will_paginate kaminari)。

def index
@records = policy_scope(Record).paginate(params[:page])
end

关于ruby-on-rails - 如何使用 Pundit 处理分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22811409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com