2013-10-27 95 views
2

我試圖改變這個分頁來反轉分頁。從我怎樣才能做到這一點sophistictaed?

|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

您在application_controller最後一行兩次反轉的陣列。有必要嗎? – hedgesky

+0

1(舊),2,3 .... 10,11,12(較新)但在同一頁中,我希望最新的一個在頂部,最舊的評論在底部。這就是我想要訂購的記錄 – HUSTEN

回答

1

我認爲你必須重寫雷的分頁程序模板。

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

+0

感謝您的完美回答:) – HUSTEN

相關問題