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

Rails 5 API using Kaminari - how to provide the page count data to client side?

我已经安装了 Kaminari gem 并且在我的控制器中有以下代码:

  # 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

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

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

localhost:3000/customers?page=1

元数据未添加到响应中。

仅供参考,我基于使用 JSONAPI 在 EmberJS 中使用的代码,但现在我使用的是 Angular2,所以不确定如何将此 'meta' 数据添加到响应中。

你应该这样写

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

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