Как можно отобразить общий объем данных? - PullRequest
0 голосов
/ 29 августа 2018

Я использую рельсы 5.1.6 Я использую самоцвет и каминари для пагинации.

Как узнать общее количество постов из нумерации страниц. Поскольку 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 голосов
/ 29 августа 2018

Сохранить все сообщения в переменную:

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 для подсчета всех сообщений.

0 голосов
/ 29 августа 2018

Исходя из вставленного вами кода, я предполагаю, что вы также отправите значение page как часть params, и вам также потребуется общее количество сообщений.

Если это так, вы можете написать свой код следующим образом:

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

Надеюсь, это помогло.

0 голосов
/ 29 августа 2018

Если вы хотите узнать общее количество сообщений независимо от нумерации страниц, вы можете использовать:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...