Рельсы - Проверьте, принадлежит ли дата определенному месяцу, в котором запрос - PullRequest
1 голос
/ 04 февраля 2020

Использование Rails 6.

У меня есть модель ElectricityUsage с полем Date, date. Я хочу извлечь все значения для amount только за текущий месяц. Как бы я совершил sh это?

Я сразу же попытался сделать следующее:

ElectricityUsage.where(habitat: current_user.reservations[0].room.habitat).where(date.month: Date.today.month)

Но, очевидно, это не сработает, и это даже не будет учитывать год , или. Моя БД работает на PostgreSQL, если это имеет значение.

Ответы [ 2 ]

3 голосов
/ 04 февраля 2020

Вы можете использовать where с Date.current.all_month, что в основном просто переводится в запрос с использованием BETWEEN, где начальная дата - первый день месяца, а последняя - последняя:

ElectricityUsage.where(habitat: current_user.reservations[0].room.habitat, date: Date.current.all_month)
1 голос
/ 04 февраля 2020

Это должно работать для вас

ElectricityUsage.where(habitat: current_user.reservations[0].room.habitat).where("EXTRACT(MONTH FROM date) = ?", Date.current.month)

PostgreSQL Функции даты и времени и операторы

...