Я бы хотел запрос оптимизированного AR (ActiveRecord), так как мой текущий запрос AR много раз запрашивает БД
Предположим, модель Chocolate со столбцом creation_at .У меня есть следующий запрос AR в моем контроллере:
for i in 1..4
@myHash[i] = Chocolate.where(created_at: (Time.now - i.hours)..(Time.now - (i-1).hours)).count
end
Приведенный выше запрос извлекается из БД 4 раза (при условии, что текущее время 12:00)
Select COUNT(*) from Chocolate where created_at BETWEEN 11:00 AND 12:00
Select COUNT(*) from Chocolate where created_at BETWEEN 10:00 AND 11:00
Select COUNT(*) from Chocolate where created_at BETWEEN 09:00 AND 10:00
Select COUNT(*) from Chocolate where created_at BETWEEN 08:00 AND 09:00
Как изменитьзапрос, чтобы он извлекал из БД только один раз?