Ruby on rails Rails-延迟作业-发送已删除对象的电子邮件

Ruby on rails Rails-延迟作业-发送已删除对象的电子邮件,ruby-on-rails,delayed-job,Ruby On Rails,Delayed Job,我有一个问题,我使用DelayedJob发送电子邮件,使用.delay方法调用删除的对象。我有一个观察者在销毁后检查,它会启动一封延迟的电子邮件,但我得到 延迟::反序列化错误 我知道我收到这个错误是因为找不到记录,但是有没有办法绕过这个问题,只发送包含delayed_jobs表中信息的电子邮件,而不在数据库中查找对象?任何帮助都将不胜感激。谢谢 您只需将对象的各个部分包装到另一个对象中(在删除之前),然后调用。delay: notifier = WhatEver.new(self) notif

我有一个问题,我使用DelayedJob发送电子邮件,使用.delay方法调用删除的对象。我有一个观察者在销毁后检查,它会启动一封延迟的电子邮件,但我得到

延迟::反序列化错误


我知道我收到这个错误是因为找不到记录,但是有没有办法绕过这个问题,只发送包含delayed_jobs表中信息的电子邮件,而不在数据库中查找对象?任何帮助都将不胜感激。谢谢

您只需将对象的各个部分包装到另一个对象中(在删除之前),然后调用
。delay

notifier = WhatEver.new(self)
notifier.delay.send_email
在销毁正在销毁的东西之前,在
回调中包装这样的东西。
WhatEver
类只是从对象中提取相关的信息位,将这些位存储在实例变量中,然后
WhatEver\send\u email
根据提取的信息构建并发送电子邮件


这样做会断开电子邮件和(即将)死对象之间的连接,并应避免出现
反序列化错误

您需要做的就是将对象的部分包装到另一个对象中(在删除它之前),然后调用
.delay

notifier = WhatEver.new(self)
notifier.delay.send_email
在销毁
正在销毁的东西之前,在
回调中包装这样的东西。
WhatEver
类只是从对象中提取相关的信息位,将这些位存储在实例变量中,然后
WhatEver\send\u email
根据提取的信息构建并发送电子邮件


这样做会断开电子邮件和(即将)死对象之间的连接,并应避免出现
反序列化错误

感谢本应使用before\u destroy并没有修复它。感谢本应使用before\u destroy并没有修复它。