获取rails范围内的值

时间:2015-11-16 02:32:46

标签: ruby-on-rails ruby-on-rails-4 activerecord time scope

我想创建一个范围,我想让所有订单自上次更新以来已超过24小时。

我想让所有这些订单循环进入它们:

Order.more_than_24_updated.find_each do |order|
  #do some stuff with each order
end

我不知道如何将24小时添加到范围内的updated_at attribute个订单中:

scope :more_than_24_updated, -> { where(status: "pago_pendiente").where('#{Time.now} >= ?', updated_at + 24.hours) }

我知道上面的内容不起作用,但是......怎么做?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

scope :more_than_24_updated, -> {where('status = ? and updated_at <= ?', :pago_pendiente, 24.hours.ago)}

答案 1 :(得分:1)

你可以尝试这个

scope :more_than_24_updated, -> { where(status: "pago_pendiente").where("NOW() - '24 hours'::INTERVAL >= updated_at") }