Rails 7创建分页端点以支持页面大小和数量



在我的Rails7应用程序中,我从外部API获取数据。API的示例响应如下:

# example API respnse
{
"data": [
# some data
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1151,
"path": "http://localhost/api/v1/example",
"per_page": 15,
"to": 15,
"total": 17265
}
}

现在,我需要创建一个端点来从该响应(从所有页面(中检索所有数据,并将分页版本发送到前端,以便只显示前10个结果,其余结果放在后续页面上。为了做到这一点,我正在使用帕吉宝石。到目前为止,我得到的是:

class PayoutsController < ApplicationController
def index
@pagy, @payouts = pagy_array(fetch_payout_history(current_user.id))
end
private
def fetch_payout_history(user_id)
client.payout_history(user_id:, page: 1, per_page: 100)
end
end

正如你所看到的,我没有涵盖会有100多个结果的情况。如何使其灵活并获取所有页面,然后使用Pagy gem将其发送到前端?

嗨,您可以尝试在方法fetch_payout_history中添加页码

def fetch_payout_history(user_id)
client.payout_history(user_id:, page: params['page'], per_page: 100)
end

我希望这对你有帮助。

最新更新