ho questo compito con delayed_job:differita lavoro con i18n su rotaie 3
def any_method
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
end
Se invio un e-mail in modalità come rotaie:
def any_method
locale = params[:locale]
UserMailer.to_user_when_his_account_is_suspended(order, locale).deliver
#more code
end
L'email viene inviata sul corretto locale/lingua .
Tuttavia delayed_job non riconosce la lingua/lingua corretta. Su questo caso ho localizzazione con locale = params[:locale]
, è possibile vedere l'esempio seguente:
locale = params[:locale]
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
Codice 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
Come posso risolvere questo problema?
Cosa vuol dire 'delayed_job non riconosce la posizione corretta'? Vuoi aggiungere "consegna"? –
Se si aggiunge il metodo '.deliver' al metodo delayed_job, si verificherà un errore. Intendo dire che le e-mail inviate non vengono inviate nella sua lingua corretta. La lingua, è ricevuta sul mio metodo con params [: locale]. Grazie! – hyperrjas
parametri [: locale]? Non sembra giusto. Intendi dire che fai riferimento alla locale delle variabili locali all'interno dell'attività, perché è l'unico modo in cui funzionerebbe. –