#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
}