Mam to zadanie z delayed_job:opóźnionego zadania z i18n na szynach 3
def any_method
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
end
Jeśli mogę wysłać e-mail jako tryb szyn:
def any_method
locale = params[:locale]
UserMailer.to_user_when_his_account_is_suspended(order, locale).deliver
#more code
end
Wiadomość e-mail zostanie wysłana na prawidłowe locale/język .
Jednak delayed_job nie rozpoznaje właściwego ustawienia/języka. W tej sprawie mogę uzyskać locale z locale = params[:locale]
można zobaczyć kolejny przykład:
locale = params[:locale]
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
Code Mailer:
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
Jak mogę rozwiązać ten problem?
Co masz na myśli mówiąc „delayed_job nie rozpoznaje właściwą lokalizację”? Czy chcesz dodać "dostawę"? –
Jeśli dodasz metodę '.deliver' do metody delayed_job, zauważysz błąd. Mam na myśli to, że wysłane e-maile nie są wysyłane na jego własny język. Język jest odbierany w mojej metodzie z parametrami [: locale]. Dziękuję Ci! – hyperrjas
parametry [: locale]? To nie brzmi dobrze. Czy masz na myśli to, że odwołujesz się do lokalnych ustawień zmiennych w zadaniu, ponieważ tylko w ten sposób zadziała. –