Will_paginate:限制结果数量

时间:2011-10-01 14:57:01

标签: ruby-on-rails ruby pagination will-paginate

我使用will paginate gem为ruby。我正在使用paginate来获取一群人并在一个字段上排序。我想要的只是前100个。基本上是顶级人物。我看不到这样做。我该怎么办呢?感谢

3 个答案:

答案 0 :(得分: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)作为其语法,但同样的概念适用于旧版本以及使用选项哈希)

答案 1 :(得分:2)

will_paginate gem将使用total_entries参数来限制分页的条目数。

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

这将为您提供3页,每页10条记录。

答案 2 :(得分:-1)

people = Person.limit(100).paginate(:per_page => 5)