2

我正在尝试将此分页更改为反向分页。从

|Last|Next|25|24|23|22|21|Previous|First|

|First|Previous|21|22|23|24|25|Next|Last|

所以,我在下面这样编码,但这需要很长时间。这可能是因为它首先获取所有评论以传递参数,然后再次application_controller.rb

有什么聪明的方法可以加快速度吗?

用户控制器.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
4

1 回答 1

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 -%>

来源在这里

于 2013-11-03T23:37:12.593 回答