Ruby on Rails - Сравнение дат
Я пытаюсь сравнить даты для приложения в рельсах. Я пробовал эту ссылку Сравнение дат в рельсах. Но это не то, что я хочу, если у меня есть фильтр по датам, то я делаю
<% jobs = @user.jobs.where(:curr_date => (Date.today))%>
Здесь curr_date - это выбранный мной атрибут "date".
Этот код работает для записей, которые имеют сегодняшнюю дату, но если мне нужны все записи, у которых есть дата между сегодняшним днем и неделей раньше, что мне делать?
Thanx!:)
4 ответа
Вы можете просто использовать
jobs = @user.jobs.where(:curr_date => (DateTime.now..1.week.ago))
Обновлено до DateTime.now
или вы также можете использовать Date.today.to_time
в противном случае будет ошибка для сравнения Date
и Time
Я думаю, что-то подобное должно работать:
<% jobs = @user.jobs.where(['curr_date < ? AND curr_date > ?', Date.today, 1.week.ago])) %>
Сравнение _дата_1 <=> сравнение_дата_2 может быть полезно для вас, которое возвращает -1,1,0 соответственно, и вы можете заполнить их......
Не пробовал это в консоли, но я думаю, что это должно работать:
# You need to implement the #week_before method
@user.jobs.where(:curr_date => (Date.week_before..Date.today))
Запросы активной записи - проверка условий массива в условиях диапазона (2.2.2)