如何在没有javascript的情况下在rails中创建倒计时(最后通牒)



如何在Rails中创建最后通牒?

我想创建一个最后通牒,最后更新一个类似treated: true的属性(示例如下(。

我试过了:

a = Time.new
# => 2018-07-17 10:16:23 +0200
b = 2.days.after
# => Thu, 19 Jul 2018 08:16:27 UTC +00:00
a - b
# => -172804.182368
b - a
# => 172804.182368
c = b - a
# => 172804.182368
t = Time.at(c)
# => 1970-01-03 01:00:04 +0100

但它不起作用。请提供一些解决方案?

示例[原文如此]

想象一下,一个有卖家的市场(比如亚马逊(。

第一个示例[原文如此]:卖家收到订单,有48小时的时间执行(切换状态(。在48小时结束时,如果卖方没有采取行动,订单将被取消。

第二个例子[原文如此]:卖家发货,客户有七天的时间收到订单的交付模式。并且在提前期结束时,订单状态变为";接收";。

您可以使用作业来实现这一点。

举第一个例子,当创建订单时,创建一个作业,该作业将在两天后取消订单:

CancelOrderJob.set(wait: 2.days).perform_later(order)

若卖方对该订单采取行动,则更新该订单的属性fulfilled: true

为了防止取消已完成的订单,当作业执行时,您可以什么都不做:

class CancelOrderJob < ApplicationJob
queue_as :default
def perform(order)
order.cancel unless order.fulfilled?
end
end

最新更新