我想知道如何通过数据库查询处理这个问题,而不是查找所有网站。
Site.all.select { |x| x.last_ran <= DateTime.now - x.interval.minutes }
基本上我需要在间隔之前找到last_ran的所有网站。因此,如果我在12点和12点06分运行我的网站,但间隔时间为5分钟,则此查询将返回该网站。
我遇到的问题是在数据库级别转换x.interval.minutes(5.minutes)。
谢谢 - 如果有特定于db的方法,我也会使用postgres!
答案 0 :(得分:1)
在postgres中这可行...
Site.where(
"sites.last_ran <= CURRENT_TIMESTAMP - sites.interval * INTERVAL '1 second'"
)
我认为您可以使用NOW()
或CURRENT_TIMESTAMP