如何显示数据总量?

时间:2018-08-29 09:26:53

标签: ruby-on-rails ruby

我使用rails 5.1.6我使用gem kaminari和api-pagination进行分页。

如何从分页中查找帖子总数。 由于per_page从首页给出10,而不是总数。

即使分页后如何获得帖子总数

class PostsController < ApplicationController

  def post
    posts = paginate Post.all, per_page: 10
    render json: JSON.pretty_generate(posts.as_json)
  end

  def index
    post
  end

end

3 个答案:

答案 0 :(得分:1)

根据您粘贴的代码,我假设您也将page的一部分也发送params值,并且您也希望总帖子数。

在这种情况下,您可以按以下方式编写代码:

response = {
  posts_count: Post.count,
  posts: Post.page(params[:page).per(10)
}
render json: JSON.pretty_generate(response.as_json)

希望这会有所帮助。

答案 1 :(得分:0)

如果您想知道与分页无关的帖子总数,可以使用:

Post.count

按照:https://apidock.com/rails/ActiveRecord/Calculations/ClassMethods/count

您的代码可能类似于:

response = {
  count: Post.count,
  posts: paginate Post.all, per_page: 10
}
render json: JSON.pretty_generate(response.as_json)

答案 2 :(得分:0)

将所有帖子保存到变量:

class PostsController < ApplicationController
  def post
    all_posts = Post.all
    posts = paginate all_posts, per_page: 10
    render json: JSON.pretty_generate(posts.as_json)
  end
end

现在您可以使用all_posts.size来获取所有帖子数。