私は電子メールを送信するためにdelyed_jobsメカニズムを使用しています。ユーザーが「send_reports_at」という新しいフィールドを追加する必要があり、ユーザーがそれをクリックすると という名前の新しいフィールドが必要な場合、カレンダーコントロールに日付と時刻が表示され、ユーザーがメールを選択したときに配信される必要があります。delayed_jobsや他の方法を使って複数のメールを複数のユーザーが同時に複数のユーザーに送信する方法はありますか?
多くの人が私にスケジューラとcronジョブを使用するように勧めましたが、私は全く新しいです。一部のR & Dでは、delayed_jobsでrun_at機能を使用しました。 一度に複数のメールが送信されるため、正しいかどうかわかりません。しかし、それは以前は動作していましたが、そうではありませんでした。
def send_report_email
send_to_agents = params.has_key?("send_to_agents") && params["send_to_agents"] == "true"
if @report.update_attributes(params[:report])
set_photo_position(false)
@report.save
@good_emails.each do |email|
if @report.send_reports_at ==""
ReportMailer.delay.additional_emails(email, @user, @report)
else
report_time = Time.zone.parse(@report.send_reports_at).utc
ReportMailer.delay(run_at: report_time).additional_emails(email, @user, @report)
end
end
ReportMailer.delay.report_sent(@user, @report, @good_emails, @bad_emails, @unsubscribed_emails)
end
respond_to do |format|
format.json { render :json => { :success => true, :report_id => @report.id, :redirect => user_reports_url(current_user), :notice => 'Report was successfully sent!' } }
end
エンド
これを継続する方法を助けてください: これは私のコントローラのコードですか?