1

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

詳細を提供できる場合はお知らせください。事前に感謝します。

4

1 に答える 1