2011-06-10 55 views
0

我的用戶表中有一個「last_action」列,每次用戶執行操作時都會更新一個unix時間戳。我想選擇我的用戶表中的所有用戶在特定時間(可能是15分鐘,這裏的目標是製作貧民窟用戶在線列表)後在網站上執行操作。如何在特定時間後查找所有數據庫行

我想要做類似下面的...

time = Time.now.to_i - 900 # save the timestamp 15 minutes ago in a variable 
User.where(:all, :where => :last_action > time) 

什麼是做到這一點的最好方法是什麼?有沒有辦法做到這一點,而不使用任何原始的SQL?

回答

1

也許這會工作嗎?

User.where("users.last_action > ?", 15.minutes.ago) 
+0

是的,這是完美的工作。謝謝! – Jon 2011-06-10 00:41:37

+0

歡迎。只要確定接受答案 – 2011-06-10 00:43:02

0

試試這個:

time = Time.now.to_i - 900 
User.where("last_action > #{time}") 

有可能是一個更好/更安全的語法把變量參數在where子句,而是因爲你是用整數(時間戳)工作這應該工作,並安全。

相關問題