Здравствуйте!
Имеется такая задача:
К примеру есть 10 записей в базе, таблице records
Мне нужно сделать выборку с offset=5, и выбрать после этого 2 записи, и вывести в порядке убывания created_at
Пробовал делать так:
Record.limit(2).offset(5).order(created_at :desc)
но в таком случае, он сначала сортирует все записи, 10,9,..1; после этого пропускает первые 5, и выдает мне записи с id=4 и id=3
а хотелось бы чтобы сортировка изначально была от 1 до 10, он пропустил первые 5, а потом вывел две записи в порядке убывания created_at, то есть записи с id=7 и id=6
Получилось только, если перебирать записи так:
Record.limit(2).offset(5).sort { |x,y| y.created_at <=> x.created_at }
А если записей будет очень много? Как можно сделать лучше?