Сравните DateTime с текущей датой - PullRequest
2 голосов
/ 04 июня 2010

Я пытаюсь использовать условие для событий, когда start_at DateTime равно или больше, чем сегодняшняя дата. Я хочу перечислить предстоящие события, но, очевидно, они не наступят, если они уже прошли.

У меня есть:

@appointments = Event.find(:all, :conditions => ['move_id = ? AND start_at = ?', @move.id, Date.today])

Я думаю, что я могу сравнивать яблоки и апельсины здесь. Он не бросает и не ошибается, просто не делает то, что должен.

Помощь! Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

Попробуйте:

@appointments = Event.find(:all, :conditions => ['move_id = ? AND start_at >= ?', @move.id, DateTime.now])

Странно, что я не могу найти DateTime # теперь документацию.

Я использую Postgres для этого теста.

>> Event.last.created_at.class
=> Time
>> Event.find(:first, :conditions => ['created_at >= ?', DateTime.now]).valid?
=> true

Код поля миграции

t.datetime "created_at", :null => false
0 голосов
/ 04 июня 2010

как вы сказали, start_at равен или больше, чем сегодняшняя дата, возможно, это была проблема с оператором, который проверял start_at вашего события с сегодняшней датой

Evento.find(:all, :conditions => ['start_at >= ?', DateTime.now])

если вы используете mysql, вы можете использовать "start_at> = CURRENT_DATETIME" или что-то вроде этого также

...