2010-06-03 111 views
2

我試圖在start_at DateTime等於或大於今天日期時對事件使用條件。 我想列出即將發生的事件,但顯然如果他們已經通過,他們不會即將到來。將DateTime與當前日期進行比較

我:

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

我想我可以在這裏比較蘋果和桔子。它不會拋出錯誤,只是不做它應該做的。

幫助!提前致謝。

+0

如果它沒有做到它應該做的事情,它會做什麼? – theIV 2010-06-03 21:31:58

+0

對不起,解釋不好。它根據協會拉入事件來移動它,但似乎沒有承認start_at的條件。它提取日期信息但不比較? – looloobs 2010-06-03 21:46:56

回答

3

嘗試:

@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

謝謝,我確實也嘗試過,而現在它拉動DateTime它似乎沒有執行比較兩者? – looloobs 2010-06-03 21:45:07

+0

什麼是start_at列類型? – retro 2010-06-03 21:55:45

+0

start_at列是日期時間 – looloobs 2010-06-03 22:50:21

0

如你所說,start_at比今天的日期等於或大於,也許是與用今天的日期檢查你的事件的start_at操作問題

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

如果你使用mysql,你可以使用「start_at> = CURRENT_DATETIME」或類似的東西

相關問題