Я получаю красивую ошибку:
failed with NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[] - 3 failed attempts
Мой контроллер:
CardSignup.all.each do |user|
Delayed::Job.enqueue MassEmail.new(user, params[:subject], params[:editor1])
end
mass_email.rb
class MassEmail < Struct.new(:user, :subject, :message)
def perform
Notifier.deliver_email_blast(user, subject, message)
end
end
_form.html.haml
- form_tag admin_email_blast_path do
Subject
%br
= text_field_tag 'subject'
%br
Body
%br
= text_area_tag 'message', '', :name => 'editor1'
%br
= submit_tag 'Send Email', :class => 'button'
:plain
<script type="text/javascript">
CKEDITOR.replace( 'editor1' );
</script>
Проблема в том, что я неправильно передаю переменную ... как мне сделать это правильно?
note: До того, как я реализовал delayed_jobs с params [: subject] и params [: editor1], он работал отлично, поэтому я должен как-то их сохранить.
Я пробовал это без Delayed_Jobs, и MassEmail.new даже не оставляет следа в моем журнале.
Я тоже попробовал это в моей консоли, и оно замерзло.
Должно быть что-то не так с mass_email.rb или вызовом в def perform