Цель: Обновить запись в моей модели заказов по истечении определенного периода времени, если запись еще не была обновлена.
Я нашел это SOpost: Обновление базы данных Rails по прошествии определенного времени
Я пытаюсь понять, как это могло бы помочь моей ситуации при обновлении записи.
Пояснение: это то, что есть в моей модели заказа:
enum order_status: {created: 1, charged: 2, cancelled: 3 }
Я думаю о коде, подобном этому, в моей модели заказа:
def cancel_orders
if Order.where(order_status: [1] && "created_at < (Date.now - 7)").update_all(order_status: [3]
end
Хотя я не уверен, какЯ могу применить это?
Я тогда создал это:
scope :cancel_orders, -> { (Order.where(order_status: [1] && "created_at < (Date.now - 7)").update_all(order_status: [3]) }
Хотя, ни одна из записей не обновлялась.
Я хочу, чтобы по прошествии 7 дней изменить запись order_status
на 3
или cancelled
(да, это неправильно), но только если запись еще не2
или 3
ИЛИ только в том случае, если в данный момент он находится на 1
.
Я вижу, что есть этот драгоценный камень: https://github.com/javan/whenever --- но я хочу избежать этого драгоценного камнябез уважительной причины.