Например, у меня есть несколько Example
объектов в базе данных.Смещение ActiveRecord, за которым следует среднее значение
#<Example id: 1, some_field: 3>
#<Example id: 2, some_field: 10>
#<Example id: 3, some_field: 4>
Скажите, я хочу, чтобы все объекты, кроме самых свежих. Что я делаю:
examples = Example.order('created_at desc').offset(1)
, чтобы получить их.
Я хотел бы узнать среднее значение some_field
среди этих 2 объектов (объект 1 и объект 2). Я
examples.average(:some_field)
Я тогда получить ноль вызывают SQL-то вроде
SELECT AVG("examples"."some_field") AS avg_id FROM "examples" OFFSET 1
кажется, что то, что происходит в том, что смещение применяется после вычисления среднего.
Решение, которое я использую, - это литье коллекции в массив и управление массивом.
Но интересно, есть ли способ выполнить это в стиле ActiveRecord с отношениями AR?
Спасибо!