5

我有一个关于 Rails 中邮件程序的理论问题。我听说过两次将资源直接传递给邮件程序并不被认为是好的做法。最好只传递一个 id 来加载对象。例如,在这个问题的公认答案中就是这样说的:Rails: Absolutely stumped with delayed_job。在任何地方都没有收到论据

但如果是这样,这个禁令的原因是什么?我不能将链接问题视为详尽的解释。谢谢你的建议。

4

1 回答 1

6

原因很简单:在您被命令发送邮件和真正的邮件程序代码执行之间,您的对象发生更改的可能性超过 0%。想象一下,您正在使用的对象将在进程中被删除,但由于您在执行时没有加载对象,它将尝试使用不再存在的对象实例。我想你现在明白了这个问题。

于 2012-10-08T18:36:10.597 回答