Мисля, че търсите заявка като тази:
SELECT * FROM (SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id) stats WHERE mod(rownum,3) = 0
Това е трудно да се създаде с помощта на ActiveRecord, така че може да се наложи да направите нещо като:
@widgetstats = self.widgetstats.find_by_sql(
%{
SELECT * FROM
(
SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id
) AS stats
WHERE mod(rownum,3) = 0
}
)
Очевидно ще искате да промените използвания ред и да добавите клаузи WHERE или други модификации, които да отговарят на вашите нужди.