【发布时间】:2019-08-10 13:21:09
【问题描述】:
我正在 Rails 中构建一个 Web 应用程序以从第三方 API 获取记录。此第三方 API 接受 page 参数。例如:GET http://thirdpartyapi.com/records?page=2
如何以分页格式构建我的 html,这样当用户点击数字 2 时,它应该发送 page=2,当用户点击数字 4 时,它应该在请求中发送 page=4。有什么宝石吗?
class DemoController < ApplicationController
def index
response = HTTP.get('http://thirdparty.com/records', {query: {page: params[:page]}}) # it will return 30 items by default
@items = response['items'].paginate(page: params[:page], per_page: 10)
end
end
这是我的看法
<%= will_paginate %>
【问题讨论】:
-
@Unixmonkey 我认为 Kaminari 和 will_paginate 做不同的事情。在这些宝石中,您首先收集所有记录,然后对它们进行分页。我的问题是,我想显示链接是我的视图,例如 1|2|3...N,当您单击任何数字时,它应该使用
page=n发送 API 请求 -
是的,抱歉我没有提供更多信息。我的想法是也许你可以使用它的分页链接来构建你的界面,或者用空记录填充你的数组来填充它。自己构建它可能更简单,但也许它可以帮助灵感或标记。
-
您应该能够使用 will_paginate gem 并且在您的控制器中只需监听
params[:page]和params[:per_page]并将其传递到您的活动记录查询中。
标签: ruby-on-rails api pagination