【发布时间】:2023-03-06 18:21:01
【问题描述】:
我有一个控制器操作将电子邮件的传递排入队列。我为该控制器操作编写了一个测试,并且在运行测试时收到了弃用警告:
弃用警告:使用 DeliveryJob 和 Parameterized::DeliveryJob 已弃用,将在 Rails 中删除 6.1。请改用 MailDeliveryJob。
控制器:
def send_email
SubscriptionMailer.with(user_id: @user.id).send_welcome_email.deliver_later
end
订阅邮件者:
class SubscriptionMailer < ApplicationMailer
helper :auxiliaries
before_action { @user = User.find_by(id: params[:user_id]) }
def send_welcome_email
@base_email = find_base_email_or_raise("welcome_email")
@subject = "#{@user.fname} #{@base_email.subject}"
send_email(subject: @subject)
end
end
测试:
test "#send_email should enqueue SubscriptionMailer's #send_welcome_email" do
assert_emails 1 do
get send_email_admin_subscriptions_activation_path(
@user.id,
)
end
end
如何升级我的应用程序以消除警告?
我已经 read about 在不同的帖子中取消注释 new_framework_defaults_6_0.rb 中的一行,但这并没有解决问题。
【问题讨论】:
-
尝试在
application.rb:config.action_mailer.delivery_job = "ActionMailer::MailDeliveryJob"中添加此行(如果您还没有) -
@Deepesh 谢谢,这确实修复了警告消息。但这会以任何方式影响电子邮件的传递方式吗?我们的测试套件没有失败,但我仍然很好奇它可能有其他影响。
标签: ruby-on-rails email actionmailer deprecation-warning