ruby-on-rails - 使用 Kaminari 的 Rails 5 API - 如何向客户端提供页数数据?

标签 ruby-on-rails pagination kaminari

我已经安装了 Kaminari gem 并在我的 Controller 中包含以下代码:

  # GET /customers
  def index
    if params[:page]
      @customers = Customer.page(params[:page]).per(params[:per_page])
      pageCount = (Customer.count / params[:per_page].to_f).ceil      
    else
      @customers = Customer.order('updated_at DESC')
      pageCount = 1
    end
    render json: @customers, meta: { total: pageCount, records: Customer.count }
  end

这会尝试在我的响应中添加一个“元”部分,其中包含客户端中构建分页控件所需的数据。

问题是,如果我发出请求(例如使用 Postman):

本地主机:3000/客户?page=1

元数据不会添加到响应中。

仅供引用,我基于使用 JSONAPI 在 EmberJS 中使用的代码,但现在我使用 Angular2,所以不确定如何将此“元”数据添加到响应中。

最佳答案

你应该这样写

render json: { customers: @customers, meta: { total: pageCount, records: Customer.count } }

在您的示例中,您仅将 @customers 添加到 json 响应中,而元部分则转到其他地方(而不是响应)。因此,要将元部分包含在 json 响应中,请确保它位于正确的位置

关于ruby-on-rails - 使用 Kaminari 的 Rails 5 API - 如何向客户端提供页数数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42190503/

相关文章:

php - PHP 中的分页无法在同一页面上运行?

ruby-on-rails - Rails 缓存 : Expiring multiple pages for one action

ruby-on-rails - 在 ruby​​ 中将两个不同的 'ranges' 组合为一个

javascript - 如何添加富文本编辑器以显示代码片段

ruby-on-rails - ActiveRecord 有效吗?即使存在错误,方法也会返回 true

ruby-on-rails-3.1 - Kaminari分页后如何获取总计数

ruby-on-rails - Kaminari 在哪里计算它的页面 url 链接?

html - 视频标签不适用于 Safari 上的 Rails

model-view-controller - 在 MVC 中,分页信息应该放在路径还是查询字符串中?

jquery - 数据表在最后一个 "Next"或任何 "Previous"分页按钮处中断