2010-09-10 105 views
0

我在使用Time.now時遇到問題。由於某種原因,當我將一個對象保存到數據庫時,它保存了2000年的數據。我試圖比較我保存在數據庫中的對象Time.now,以檢查它是否更大,但它總是返回因爲2000年是虛假的。有人知道我可以解決這個問題的方法嗎?Ruby on Rails Time.now

我只需要檢查,確保了10分鐘,過去了,因爲我創建了一個對象時相比Time.now

+0

您正在使用哪個數據庫引擎? – 2010-09-10 08:18:02

回答

2

這聽起來像你的數據庫列是time型的,而不是datetimetimestamp。這隻會存儲時間,當它被轉換爲紅寶石(支持日,月,年等)的Time實例時,默認值用於日,月,年,這就是爲什麼你會看到2000年。

如果這是問題,您可能需要將數據庫列更新爲datetimetimestamp,因爲它聽起來像是您希望無論如何都需要日,月,年的部分時間。在這種情況下,你的比較將起作用。

+0

是的,這聽起來似乎合理。 – einarmagnus 2010-09-10 08:23:13

+0

是的,該列是類型時間。我一直在嘗試created_at部分,它仍然無法正常工作。 – Brian 2010-09-10 08:25:18

+0

不確定你的意思。我沒有提到created_at。 – Shadwell 2010-09-10 08:35:34

0

created_at < 10.minutes.ago應該工作

+0

這似乎並沒有工作..如果我只是創建對象,類型1分鐘前後2它仍然說真 – Brian 2010-09-10 08:05:37

+0

嘗試追加to_date,並看到它有助於'created_at <10.minutes.ago.to_date' – einarmagnus 2010-09-10 08:15:36

+0

是你的數據庫服務器與運行代碼在同一臺機器上? – einarmagnus 2010-09-10 08:16:30