2011-10-01 53 views
3

我使用將分頁寶石的紅寶石。我正在使用分頁來獲取一堆人並在一個字段上排序。我想要的只是前100個。基本上是頂級人物。我不能這樣做。我將如何去做呢?謝謝將分頁:結果數量限制

回答

-1
people = Person.limit(100).paginate(:per_page => 5) 
+0

不起作用 – Miotsu

4

據我所知will_paginate沒有提供這個選項,我只是在它的源代碼中有一個根源來檢查,但如果你不介意在你的條件下有一個子查詢,它可以是做...

people = Person.paginate(page: 10).where('people.id IN (SELECT id FROM people ORDER BY a_field LIMIT 100)').per_page(5) 
people.total_pages 
=> 20 

替換a_field與排序在球場上,這應該爲你工作。

(注意,上面使用will_paginate(3.0.2),其語法的當前版本,但同樣的概念也適用於舊版本使用選項哈希爲好)

+0

嘿。這會給我每頁100?我想在一個頁面上5。但只有前100個。 – Jonovono

+0

啊,我看,沒問題,我編輯了我的原始答案,以滿足您的需求:) – roboles

+0

這真棒。謝謝。完美工作! – Jonovono

0

will_paginate創業板將採取total_entries參數來限制分頁條目的數量。

@problems = Problem.paginate(page: params[:page], per_page: 10, 
total_entries: 30) 

這給你3頁共10條記錄。