ruby-on-rails - 获取 30 分钟前创建的记录 - Rails

标签 ruby-on-rails ruby

我需要从 Time.now 获取 30 分钟前创建的记录。我正在使用一个 cron,我想每分钟触发一次 cron。

我基本上需要这个,除了它应该忽略秒数,这样如果 Time.now == Wed, 31 Jan 2018 18:00:31 +0000 那么一个记录 created_at = "2018 年 1 月 31 日星期三 17:30:23 +0000 应该匹配。

这是我目前的查询,但由于时间评估不当而无法正常工作。

Cart.joins(:cart_addresses).group('carts.id').where(created_at: Time.now - 30.minutes).each do |i|
  puts i.id
end

最佳答案

请尝试以下查询:

# if current time is 3:00:03
# it will return carts created at 2:30:00 -> 2:30:59
from_mins_ago = 30.minutes.ago.change(sec: 0)
to_mins_ago   = from_mins_ago.change(sec: 59) 
Cart.joins(:cart_addresses).group('carts.id').where(created_at: from_mins_ago..to_min_ago).pluck('carts.id')

关于ruby-on-rails - 获取 30 分钟前创建的记录 - Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48549389/

相关文章:

ruby-on-rails - 一些常见 Web 框架的内存占用量如何比较?

css - 如何设置 rails time_select 字段的样式?

ruby-on-rails - 在 Grape/Rack::Mount::Route 中访问已编译的路由

ruby - 如何在文本文件中间插入一行?

javascript - Rails 应用程序中的 Jquery altFormat datepicker 问题

ruby-on-rails - 在vscode中将调试配置为Ruby on Rails和Docker [已解决]

ruby-on-rails - Rails : Has_many through, 嵌套复选框,并验证 presence_of

ruby-on-rails - 使用多个数据库测试 Rails 应用程序

ruby-on-rails - 在 ruby​​ on rails 中自动设置语言环境

windows - 如何从 ruby​​ 获取 %USERPROFILE%?