限制 json 个结果的数量 - Rails API

Limit number of json results - Rails API

我正在创建 Rails API,当我收到对 mywebsite.com/posts/all 的请求时,它会向我显示所有 post 数据。我正在尝试 mywebsite.com/posts/all?limit=20 来显示 20 个结果或其他一些数字。 rails有什么方法可以实现?

简单的方法是

@posts = Post.limit(params[:limit])

但您也可以使用 will_paginate gem

限制将不起作用,如果您每次调用此方法,它将 return 只有最后 20 条记录, 使用分页实现此结果的最佳方法,在这里您可以限制每个请求命中时传递的记录数

您可以使用 gem will_paginate

在控制器中

@posts = Post.paginate(:page => params[:page], :per_page => 20)

在视图中

<%= will_paginate @posts %>

有关 will_paginate 的信息 https://github.com/mislav/will_paginate/blob/master/README.md

如果你使用 API 在下面传递参数 ass

GET /v1/posts?page=1&per_page=10  

更改控制器中的值

@posts = Post.paginate(page: params[:page], per_page: params[:per_page])