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

Ruby on rails 获取30分钟前创建的记录-Rails,ruby-on-rails,ruby,Ruby On Rails,Ruby,我需要从时间获取30分钟前创建的记录。现在。我正在使用cron,我想每分钟启动一次cron 我基本上需要它,但它应该忽略秒数,这样如果Time.now==Wed,2018年1月31日18:00:31+0000,则创建的记录应匹配 这是我到目前为止的查询,它不起作用,因为时间的计算不正确 Cart.joins(:cart_addresses).group('carts.id').where(created_at: Time.now - 30.minutes).each do |i| puts

我需要从
时间获取30分钟前创建的记录。现在
。我正在使用cron,我想每分钟启动一次cron

我基本上需要它,但它应该忽略秒数,这样如果
Time.now==Wed,2018年1月31日18:00:31+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')
你可以用一个靶场

Cart.joins(:Cart\u addresses).group('carts.id').where(创建时间:30.minutes.ago..DateTime.now)

有很多解决方案


更多信息:

此查询将在过去30分钟内获取所有信息,而不是30分钟前,对吗?以前的查询与您所说的一样。但我刚刚更新了查询。请检查新的查询。