Может ли ActiveRecord: offset смещаться, чтобы все записи возвращались? - PullRequest
0 голосов
/ 19 сентября 2011

Мой поиск использует опцию :offset (скажем, :offset => 50), и страницы, использующие этот поиск, разбиваются на страницы. Итак, страница 1 начинается с записи с идентификатором 51.

Проблема в том, что первые 50 записей никогда не появляются, потому что поиск не «оборачивается». То есть, если есть всего 200 записей, и я делаю :offset => 50, коллекция из поиска не включает записи 1-50. Есть ли способ указать поиску «обернуть», чтобы он включал все 200 записей - но они упорядочены так, что они начинаются с записи № 51?

1 Ответ

0 голосов
/ 19 сентября 2011

Смещение предназначены только для ограничения выбранных записей;так что вы не должны использовать это, если хотите все.Если размер вашей страницы составляет 50, и вы можете предположить, что ваши записи всегда находятся в идеальном порядке (вероятно, это не очень хорошее долгосрочное предположение), вы можете указать порядок, например:

Model.order('id < 50, id')

Если вы загружаете эти записиВ любом случае, вращение записей в памяти может быть нормальным, если набор данных остается управляемым:

Model.all.rotate(50)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...