我正在创建 Rails API,当我收到对 mywebsite.com/posts/all
的请求时,它会显示所有发布数据。我正在尝试执行 mywebsite.com/posts/all?limit=20
以显示 20 个结果或其他一些结果。用rails有什么方法可以实现?
最佳答案
Limit 不起作用,如果你每次调用这个方法,它只会返回最后 20 条记录, 使用分页实现此结果的最佳方法,在这里您可以限制每个请求命中时传递的记录数
您可以使用gem will_paginate
在 Controller 中
@posts = Post.paginate(:page => params[:page], :per_page => 20)
在 View 中
<%= 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
改变 Controller 中的值
@posts = Post.paginate(page: params[:page], per_page: params[:per_page])
关于ruby-on-rails - 限制 json 结果的数量 - Rails API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47107891/