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)

Другие вопросы по тегам