Разбиение на страницы в режиме Rails API JBuilder

#ruby-on-rails #api #pagination #kaminari #jbuilder

#ruby-on-rails #API #разбиение на страницы #каминари #jbuilder

Вопрос:

В настоящее время я пытаюсь работать с большим набором данных с более чем 9000 поступающими записями и хотел бы разбить его на страницы. Я никогда не работал с разбиением на страницы, я знаю, что драгоценные камни Kaminari и Pagy могут это сделать. Я считаю, что мне нужно обернуть мою находку либо с помощью методов, предоставленных Kaminari, либо с помощью Pagy, но я не уверен, что я должен делать с моими представлениями Jbuilder после этого. Ниже приведен фрагмент моего метода поиска и конструктор для него. Хэш участников содержит примерно 9000 записей, из-за чего загрузка либо истекает, либо занимает около 5 минут. Я надеюсь, что разбиение на страницы должно сгладить это.

 Controller
  class ConferencesController < ::ApplicationController
    def attendees
      @conference = Conference.find(attendee_params[:conference_id])
    end

    private

    def attendee_params
      params.permit(:conference_id)
    end
  end
end
  
 View
json.full_name attendee.full_name
json.email attendee.email
json.requires_certification attendee.requires_certification
  

Вывод

 {
  "conference": {
    "title": "Avengers Assemble",
    "description": null,
    "starts_at": "2021-04-21T16:00:00.0000 0000",
    "ends_at": "2021-04-21T16:45:00.0000 0000",
    "attendees_count": 9002
  },
  "attendees": [
    {
      "full_name": "Steve Rogers",
      "email": "blank@blank.com",
      "requires_certification": true
    },
    {
      "full_name": "Bruce Banner",
      "email": "denise.parisian@kirlin.biz",
      "requires_certification": false
    },
    {
      "full_name": "THor Odinson",
      "email": "blank@blank.com",
      "requires_certification": false
    }