我有一些表: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