ActionMailer と Resque を使用してメールをキューに入れています。私はどちらにもあまり詳しくありませんが、基本的なことは知っています。現在、電子メールをキューに入れると、電子メールが送信されるのに本文がない理由をデバッグしています..不可思議。
実行するArtistReminderWorker.perform(8,2)
と、本文とともにメールが送信されます。大成功!
実行するResque.enqueue(ArtistReminderWorker, 8, 2)
と、メールは本文なしで送信されます。神秘。
これら 2 つのステートメントは機能的に同じだと思いましたよね?
最初は、Resque ワーカーがレコードを検索できなかったのではないかと思ったので、メール コマンドの直前にデータベース検索をワーカーからメーラーに移動しました。
これが私の Worker クラスと Mailer クラスです。
artist_reminder_worker.rb
class ArtistReminderWorker
@queue = :artist_reminders_queue
def self.perform(event_id, user_id)
ArtistReminderMailer.artist_reminder_email(event_id, user_id).deliver
end
end
artist_reminder_mailer.rb
class ArtistReminderMailer < ActionMailer::Base
default from: 'no-reply@example.com'
def artist_reminder_email(event_id, user_id)
@user = User.find(user_id)
@event = Event.find(event_id)
@url = dashboard_url
subject = "You have an upcoming gig at #{@event.venue.name}"
mail(to: @user.email, subject: subject)
end
end
私の見解は次のとおりです。
views/artist_reminder_mailer/artist_reminder_email.slim
views/artist_reminder_mailer/artist_reminder_email.text.slim
詳細を提供できる場合はお知らせください。事前に感謝します。