Я размещаю электронные письма с помощью ActionMailer и Resque. Я тоже не знаком с этим, но у меня есть основы. Прямо сейчас я отлаживаю, почему при размещении электронной почты отправляется электронное письмо, но нет тела. Мистификация.Тело электронной почты не отправляется с действием Mailer и Resque
Когда я выполняю ArtistReminderWorker.perform(8,2)
, электронное письмо отправляется с телом. Большой успех!
Когда я выполняю Resque.enqueue(ArtistReminderWorker, 8, 2)
, электронное письмо отправляется без тела. Тайна.
Я думал, что эти два утверждения функционально одинаковы, нет?
Сначала я думал, что работник Resque не смог найти запись, поэтому я перевел поиск базы данных с рабочего на почтовый ящик прямо перед командой mail.
Вот мои классы Работника и Мейлера.
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: '[email protected]'
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
Позвольте мне K теперь, если я могу предоставить более подробную информацию, спасибо заранее!
Я знаю, что это не прямой ответ, но вы не можете переключиться на DelayedJob? ;) –
:) Желаю. Раньше я использовал DJ, но в этом приложении уже есть пара Resque, которые уже были реализованы. Это разочаровывает, потому что у меня почти идентичный код – manderson