我在发现gem will_paginate这很棒!但我正面临使用问题。我正在构建一个群组>发布>评论应用,因此在我的群组展示页面中,我展示了帖子及其评论。为了限制查询的号码,我使用的方法包括这样的:Will_paginate for includes评论
Group_controller:
def show
@posts = @group.posts.order(upd_at: :desc).includes(:user).includes(comments: :user).paginate(page: params[:page], per_page: 10)
end
所以我想也分页我的意见。你知道一个办法吗?
我的代码: Group_show =
<h1>Groupe <%= @group.name %></h1>
<div class="post_list<%[email protected]%>">
<%= render @posts %>
</div>
<%= will_paginate @posts, renderer: BootstrapPagination::Rails %>
而且我的职位/彦博=
<% @comments = post.comments %>
<ul id="comment_list<%=post.id%>">
<%- if @comments.any? %>
<%= render @comments, post: post %>
<%= will_paginate @comments, renderer: BootstrapPagination::Rails %>
<% end %>
</ul>
顺便说一句,如果你有直接的Groups_controller(节目)来定义@comments的方法,它可以是非常有用的;)
不知是否更有意义,简单地限制你的'post.comments'到最近(3):'post.comments.order(created_at:DESC).limit(3)'。然后有一个按钮,执行一个ajax请求到另一个端点,如果用户需要它们,它将呈现剩余的请求...我想这会更有效率。 – BigRon
@BigRon,谢谢你的回答,我已经把这个订单放入了我的模型评论。你能展示如何看起来像ajax请求来执行该操作吗? –
尝试'@posts = Post.where(GROUP_ID:@ group.id).order(upd_at:DESC).includes(:用户,{评论:用户})' – Thanh