2016-06-21 10 views
0

私のJobNotifier/Mailerが購読者の電子メールリストを繰り返し処理し、問題が解決される可能性がある場合は「n」回配信するようにメールを送信するのが好きです。電子メールメッセージを送信すると、すべてのユーザーの電子メールアドレスが受信者に公開されます。直し方?

残念ながら、私が行ったことはすべて電子メールメッセージを送信し、すべてのユーザーの電子メールアドレスを受信者に公開します。ここで

右私のjobs_controller.rb内のメソッドを作成し、私のコードです

def create 
    @job = Job.new(job_params) 
    if @job.save 
     # Deliver the Posted Job 
     JobNotifier.send_post_email(@job).deliver 
     redirect_to preview_job_path(@job) 
    else 
     render :new 
    end 
    end 

アプリ/メーラー/ application_mailer.rb

class ApplicationMailer < ActionMailer::Base 
    default to: Proc.new { User.pluck(:email).uniq }, 
      from: 'FarFlungJobs <[email protected]>' 

    layout 'mailer' 

end 

アプリ/メーラー/ job_notifier.rb

class JobNotifier < ApplicationMailer 

    def send_post_email(job) 
    @jobs = job 
    mail(:subject => 'New job posted on FarFlungJobs' 
     ) 
    end 

end 

テスト/メーラー/プレビュー/ job_notifier_preview.rb

# Preview all emails at http://localhost:3000/rails/mailers/job_notifier 
class JobNotifierPreview < ActionMailer::Preview 

    def send_post_email 
    user = User.all 
    JobNotifier.send_post_email(user) 
    end 

end 

は、プレビューには下記URLを使って自分のメーラーをテストするために私のブラウザに乗りしようとしました/私のメーラーをテスト:

http://localhost:3000/rails/mailers/job_notifier/send_post_email

Test View

アムをRailsの 4.2.1

答えて

0

を使用しますが、それぞれに電子メールを送信する必要があります:私のテストの10成果は、(私の問題で私を助けるために必要な最低場合)以下、この画像ですユーザーは個別にそれははるかに時間がかかるが、それは他のユーザーの電子メールを表示しません。

は、だからあなたのコントローラでは、あなたはこのようなものがあります:

def create 
    @job = Job.new(job_params) 
    if @job.save 

    User.pluck(:email).uniq.each do |email| 
     # Deliver the Posted Job 
     JobNotifier.send_post_email(@job, email).deliver 
    end 

    redirect_to preview_job_path(@job) 
    else 
    render :new 
    end 
end 

をそれとも、メーラー

編集の内側にループを置くことができます:

あなたのメーラーを変更する必要があります余分な議論を処理できるようにする:

class JobNotifier < ApplicationMailer 

    def send_post_email(job, email) 
    @jobs = job 
    mail(:to => email :subject => 'New job posted on FarFlungJobs') 
    end 

end 
+0

私はこれを行うエラーになります。エラーは「間違った引数数(2の1)」です。私はブロックがエラーを投げていると思う。 –

+0

メーラーに移動しても、同じエラーが表示されます。引数の数が間違っている(2のために1) –

+0

@AfolabiOlaoluwaAkinwumi編集を確認してください – Ruslan

関連する問題