我正试图改变这种分页以扭转分页。从
|Last|Next|25|24|23|22|21|Previous|First|
到
|First|Previous|21|22|23|24|25|Next|Last|
所以,我编码如下,但需要很长时间。这可能是因为它获取所有注释以便首先传递参数,然后它再次在application_controller.rb
有没有聪明的方法可以让它更快?
user_controller.rb
@comments = reverse_paginate(Comment.where(:user_id => user_ids, :commentable_type => commentable).order('created_at DESC'), params[:page])
application_controller.rb
def reverse_paginate(scope, page)
if page
page_number = page
else
page_number = Kaminari.paginate_array(scope.reverse).page(1).per(10).num_pages
end
Kaminari.paginate_array(scope.reverse).page(page_number).per(10).reverse!
end
答案 0 :(得分:1)
我认为你必须覆盖Kaminari的分页器模板。
<%= paginator.render do -%>
<nav class="pagination">
<%= first_page_tag unless current_page.first? %>
<%= prev_page_tag unless current_page.first? %>
<% each_page do |page| -%>
<% if page.left_outer? || page.right_outer? || page.inside_window? -%>
<%= page_tag page %>
<% elsif !page.was_truncated? -%>
<%= gap_tag %>
<% end -%>
<% end -%>
<%= next_page_tag unless current_page.last? %>
<%= last_page_tag unless current_page.last? %>
</nav>
<% end -%>
来源here