我怎样才能做到这一点?

时间:2013-10-27 10:43:49

标签: ruby-on-rails ruby-on-rails-3

我正试图改变这种分页以扭转分页。从

|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

1 个答案:

答案 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