Рельсы, сравнивающие даты - PullRequest
3 голосов
/ 15 декабря 2009

У меня есть модель данных, которая содержит атрибут DateTime, date. Я хочу узнать, сегодня ли эта дата. У меня адское время!

>> Deal.first.date 
=> Mon, 14 Dec 2009 23:59:59 EST -05:00

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

Спасибо, Аарон.

Ответы [ 3 ]

5 голосов
/ 15 декабря 2009

Я предполагаю, что часовой пояс сводит вас с ума.

Для конкретного экземпляра вы можете сделать:

 model.date.today?

Для поиска активной записи попробуйте следующее:

 Deal.all(:conditions=>['date > ?',Time.zone.now.beginning_of_day])

Вот проблема:

>> Time.zone.now.beginning_of_day == Date.today.beginning_of_day
=> false
0 голосов
/ 15 декабря 2009

Я думаю, что это должно сработать, но я не уверен, что так будет, поскольку я не проверял это.

Deal.first(:condition => { :date => Date.today })
0 голосов
/ 15 декабря 2009

Я бы пошел с чем-то вроде этого:

Deal.find(:first, :conditions => ['date >= ? AND date < ?', Date.today, Date.today+1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...