限制json结果的数量 - Rails API

时间:2017-11-04 05:50:22

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

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

2 个答案:

答案 0 :(得分:0)

简单的方法是

document.getElementById('recents').innerHTML+=`<button type="button" class="btn btn-success" style='margin-bottom:20px;' onclick="window.location = '${window_location}'">${currentElementName}</button><br/>`;

但您也可以使用will_paginate gem

答案 1 :(得分:0)

限制不起作用,每次调用此方法时,它只返回最后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​​传递params ass

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

更改控制器中的值

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