Ich habe diese Aufgabe mit delayed_job:Delayed Job mit i18n auf Schienen 3
def any_method
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
end
Wenn ich eine E-Mail als Schienen-Modus senden:
def any_method
locale = params[:locale]
UserMailer.to_user_when_his_account_is_suspended(order, locale).deliver
#more code
end
Die E-Mail wird auf der richtigen locale/Sprache gesendet .
Jedoch delayed_job erkennt nicht die richtige Ländereinstellung/Sprache. Auf diesem Fall habe ich mit locale = params[:locale]
locale erhalten, können Sie das nächste Beispiel sehen:
locale = params[:locale]
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
Mailer-Code:
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
Wie kann ich dieses Problem beheben?
Was meinst du mit ‚delayed_job nicht die richtige Lage erkennt‘? Möchten Sie "liefern" hinzufügen? –
Wenn Sie der delayed_job-Methode die '.deliver'-Methode hinzufügen, erhalten Sie eine Fehlermeldung. Ich meine, dass die versendeten E-Mails nicht in seiner richtigen Sprache gesendet werden. Die Sprache wird auf meiner Methode mit params [: locale] empfangen. Vielen Dank! – hyperrjas
params [: Gebietsschema]? Das klingt nicht richtig. Meinst du, dass du das lokale Variablengebietsschema in der Aufgabe referenzierst, weil das die einzige Möglichkeit ist, das es funktionieren würde. –