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