我已安装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'数据已添加到回复中。
答案 0 :(得分:2)
你应该写像
render json: { customers: @customers, meta: { total: pageCount, records: Customer.count } }
在您的示例中,您只将@customers
添加到json响应中,而meta部分则添加到其他位置(而不是响应)。因此,要在json响应中使用meta部分,请确保它位于正确的位置