Насколько мне известно, 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) дляего синтаксис, но та же концепция применима и к более старой версии с использованием хеша опций)