我目前正在开发一个 Rails 应用程序,我正在使用 state_machine gem 来指导客户完成一个复杂的过程。
在流程的多个状态下,我需要在一段时间后触发事件。例如,如果客户在 5 天后仍未确认收到订单,我想自动向他发送一封电子邮件并进入包裹跟踪流程。
class Order < ActiveRecord::Base
state_machine :initial => :confirmed do
after_transition :on => :not_received_by_5_days, do |order, transition|
order.send_email
order. .....
order. .....
event :customer_confirmation do
transition :confirmed => :order_received
end
event :not_received_by_5_days do
transition :confirmed => :parcel_tracking_process
end
def send_email
blabla
end
end
end
在测试我以前的解决方案后进行编辑:
如何在一段时间后触发转换?
谢谢,
克莱门特