私はdelayed_jobでこのタスクを持っています:
def any_method
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
end
Rails モードでメールを送信する場合:
def any_method
locale = params[:locale]
UserMailer.to_user_when_his_account_is_suspended(order, locale).deliver
#more code
end
電子メールは適切なロケール/言語で送信されます。
ただし、 delayed_jobは適切なロケール/言語を認識しません。この場合、でロケールを取得しますlocale = params[:locale]
。次の例をご覧ください。
locale = params[:locale]
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
メーラーコード:
def to_user_when_his_account_is_suspended(user, locale)
@user = user
@locale = locale
mail(:to => @user.email, :subject => t('.user_account_has_been_suspended'))
end
この問題を解決するにはどうすればよいですか?