我使用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
答案 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
来获取所有帖子数。