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

时间:2017-02-12 16:59:18

标签: ruby-on-rails pagination kaminari

我已安装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'在我的响应部分,我需要在客户端构建分页控件。

问题在于,如果我提出请求(例如使用邮递员):

本地主机:3000 /客户页= 1

元数据未添加到响应中。

仅供参考我使用JSONAPI在EmberJS中使用此代码,但现在我使用的是Angular2,所以不确定如何获得这个' meta'数据已添加到回复中。

1 个答案:

答案 0 :(得分:2)

你应该写像

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

在您的示例中,您只将@customers添加到json响应中,而meta部分则添加到其他位置(而不是响应)。因此,要在json响应中使用meta部分,请确保它位于正确的位置