Как выбрать объекты в определенном диапазоне времени в Ruby on Rails?

Предположим, что нам нужно получить объекты, которые были созданы после определенной даты. Для этого будем отталкиваться от created_at значения из базы данных. 

Откроем консоль 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

При указании диапазона дат, нужно учесть, что ".." (две точки) и "..." (три точки) вернут разный результат. Две точки включают в себя последний элемент, а три - исключают.
Наверх