Как выбрать объекты в определенном диапазоне времени в Ruby on Rails?
Предположим, что нам нужно получить объекты, которые были созданы после определенной даты. Для этого будем отталкиваться от created_at значения из базы данных.
Откроем консоль Ruby on Rails:
Откроем консоль Ruby on Rails:
rails c
Зададим начальную дату для нашего диапазона, например:
start_date = Date.today - 100.days => Sat, 17 Aug 2019
В качестве конечной даты возьмем текущий день:
end_date = Date.today => Mon, 25 Nov 2019
Воспользуемся методом where и передадим желаемые параметры поиска:
result = ModelName.where(created_at: start_date..end_date)
result.count => 13
При указании диапазона дат, нужно учесть, что ".." (две точки) и "..." (три точки) вернут разный результат. Две точки включают в себя последний элемент, а три - исключают.