在 JBuilder 视图中呈现分页页面
Rendering paginated pages in JBuilder views
我目前正在对具有超过 9000 个项目的查询与会者的 return 进行分页。我的页面和路由工作正常,但我希望它们作为指向该结果页面的可点击链接出现在页面底部。我在使用 JBuilder 方面比较陌生 我正在使用 Kaminari gem 以及 API-Pagination gem 并且想知道如何将 visible/clickable 页码添加到根据 Kaminari Docs <%= paginate @attendees %>
的 JBuilder 视图就足够了。但据我所知,JBuilder 无法正常工作或将该逻辑解释为纯粹制造 JSON 对象?感谢任何建议以及对 JBuilder 正在做什么的更好解释。
Controller
module Reports
class ConferencesController < ::ApplicationController
def attendees
@conference = Conference.find(attendee_params[:conference_id])
@attendees = @conference.attendees
paginate json: @attendees, per_page: 500
end
private
def attendee_params
params.permit(:conference_id)
end
end
end
View
json.conference @conference, partial: 'conference', as: :conference
json.attendees @attendees, partial: 'attendee', as: :attendee
<%= paginate @attendees %>
Kaminari 在 HTML 部分方面表现出色,但您还需要做一些额外的事情才能将其设置为其他响应格式。您可以从控制器中删除 paginate json: @attendees, per_page: 500
行以支持类似
的内容
@attendees = @conference.attendees.page(params[:page]).per(500)
此外,您需要向 jbuilder 部分提供额外信息以呈现此信息。
像这样:
json.meta do
json.total_pages @attendees.total_pages
json.total_count @attendees.total_count
end
# See the Kaminari docs for more methods available https://github.com/kaminari/kaminari#the-page-scope
我目前正在对具有超过 9000 个项目的查询与会者的 return 进行分页。我的页面和路由工作正常,但我希望它们作为指向该结果页面的可点击链接出现在页面底部。我在使用 JBuilder 方面比较陌生 我正在使用 Kaminari gem 以及 API-Pagination gem 并且想知道如何将 visible/clickable 页码添加到根据 Kaminari Docs <%= paginate @attendees %>
的 JBuilder 视图就足够了。但据我所知,JBuilder 无法正常工作或将该逻辑解释为纯粹制造 JSON 对象?感谢任何建议以及对 JBuilder 正在做什么的更好解释。
Controller
module Reports
class ConferencesController < ::ApplicationController
def attendees
@conference = Conference.find(attendee_params[:conference_id])
@attendees = @conference.attendees
paginate json: @attendees, per_page: 500
end
private
def attendee_params
params.permit(:conference_id)
end
end
end
View
json.conference @conference, partial: 'conference', as: :conference
json.attendees @attendees, partial: 'attendee', as: :attendee
<%= paginate @attendees %>
Kaminari 在 HTML 部分方面表现出色,但您还需要做一些额外的事情才能将其设置为其他响应格式。您可以从控制器中删除 paginate json: @attendees, per_page: 500
行以支持类似
@attendees = @conference.attendees.page(params[:page]).per(500)
此外,您需要向 jbuilder 部分提供额外信息以呈现此信息。
像这样:
json.meta do
json.total_pages @attendees.total_pages
json.total_count @attendees.total_count
end
# See the Kaminari docs for more methods available https://github.com/kaminari/kaminari#the-page-scope