У меня есть эта задача с delayed_job:отложенной работы с i18n по рельсам 3
def any_method
UserMailer.delay(queue: "Email", priority: 3).to_user_when_his_account_is_suspended(user, locale)
end
Если я отправить электронную почту в режиме рельсам:
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)
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
Как я могу исправить эту проблему?
Что вы имеете в виду «delayed_job не признает правильное место»? Вы хотите добавить «доставить»? –
Если вы добавите метод '.deliver' в метод delayed_job, вы поймаете ошибку. Я имею в виду, что отправленные электронные письма не отправляются на его правильный язык. Язык, полученный по моему методу с параметрами [: locale]. Спасибо! – hyperrjas
params [: locale]? Это звучит не так. Вы имеете в виду, что вы ссылаетесь на локальную переменную locale внутри задачи, потому что это единственный способ ее работы. –