【问题标题】:Limit number of json results - Rails API限制 json 结果的数量 - Rails API
【发布时间】:2017-11-04 05:50:22
【问题描述】:

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

【问题讨论】:

  • 谷歌它........

标签: ruby-on-rails json rails-api


【解决方案1】:

Limit 无效,每次调用此方法只会返回最近 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 传递下面的参数

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

更改控制器中的值

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

【讨论】:

  • 如果我正在做 API,will_paginate 是否有效,因为我没有视图并将其用于构建移动应用程序。
  • 像上面一样传递参数,如果你想要第二个列表 /v1/posts?page=2&per_page=10 on...
【解决方案2】:

简单的方法是

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

但你也可以使用will_paginate gem

【讨论】:

  • will_paginate gem 可以让您轻松处理好后续页面。但是,是的,如果你愿意,你可以轻松地自己动手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 2012-11-30
  • 2015-08-11
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 2017-09-07
相关资源
最近更新 更多