我有一些表:Rails ActiveRecord如何將Time.now設置爲NULL?
online | offline
10:32 | 11:06
12:28 | 13:04
14:07 | NULL
正如你所看到的, - 用戶沒有在脫機時(假設現在是14:15)。我需要獲得所有用戶在線時間。如果用戶目前不在線下 - 我需要獲得差異Time.now - 在線。
在我的Ruby代碼創建功能:
def offline_datetime
if offline.nil? then Time.current else offline end
end
這是確定的,但如果我有很多的記錄它會這麼慢?我怎樣才能做到這一點通過數據庫?
在數據庫可以更快和/或更好地完成數據庫操作時,Dude對ruby中的事物並不好。當我們談論數百甚至數千數據集的時候,因爲你的權利並不重要,但是當你達到更高層次時,你可能會遇到一些問題,所以最好從第一天開始,而不是現在的應用程序就像一個fusee一樣慢。 – davidb
我不同意你的看法。要在Ruby中有足夠快的解決方案,開發和維護起來要容易得多。舉個例子,我沒有看到你有數百萬條記錄(從離線切換到在線),所以不,如果沒有必要,不要優化。吻! – mliebelt
是的,因爲這很容易,但我不認爲在紅寶石包括兩個SQL命令的解決方案是可怕的維護。它仍然是ActiveRecord,沒有令人毛骨悚然的純SQL。 – davidb