升级到Rails 6后,我注意到默认邮件程序的
配置:
如果我运行
为什么会出现这种情况以及如何解决?您有什么想法吗?
.deliver_later
与Rails 5中的不同。配置:
config.active_job.queue_adapter = :inline
当运行Mailer.register_email(...).deliver_later
时,在ActionMailer::Base.deliveries
中没有存储任何内容。只有在运行perform_enqueued_jobs
时,该数组才会被填充-似乎queue_adapter = :inline
不按照我的预期工作。如果我运行
Mailer.send(...).deliver_now
,那么ActionMailer::Base.deliveries
中就会有适当的值。为什么会出现这种情况以及如何解决?您有什么想法吗?
perform_enqueued_jobs
。他们添加了一个过滤器,以确保只有电子邮件作业是以这种方式执行的。 https://github.com/rails/rails/blob/master/actionmailer/lib/action_mailer/test_helper.rb#L37 - DylanReile