Нам нужно использовать sidekiq для отправки всех наших электронных писем на Rails 5, я нашел несколько ссылок ( ссылка # 1 , ссылка # 2 ), показывающих, как мы можем сделать это для конкретных новыхпочтовые программы, но нет ресурсов о том, как это можно сделать по умолчанию (переопределяя поведение для ApplicationMailer (или ActionMailer))
Я мог бы получить это для электронных писем разработчиков, используя devise_async gem, но я хочу сделать это поведением по умолчанию для всей электронной почты, отправляемой через приложение
Так, как я могу связать метод deliver_later
с почтовой программой по умолчанию или внедрить задание sidekiq, которое всегда будет использоватьсяпочтовый по умолчанию?
Я пробовал несколько вариантов добавления метода deliver_later
к application_mailer.rb
, но ни один из них не работал
Обновление:
Я хочу переопределить ApplicationMailer
или ActionMailer
, чтобы избежать вызова deliver_later
для каждого Mailer отдельно, цель состоит в том, чтобы сделать это в родительском классе, от которого наследуются все почтовые программы, чтобы избежать повторения и поддерживать принцип DRY
Я ожидаю обновления этого файла application_mailer.rb
class ApplicationMailer < ActionMailer::Base
default from: 'xxxxxx'
layout 'mailer'
# Maybe adding a way here to chain the deliver_later method
def initialize
# somehow chain deliver_later method after the object creation from this class
end
end