Ruby on Rails 3.2 Mailer, локализовать почтовое поле
В настоящее время я пишу почтовую программу в RoR 3.2, которая будет рассылать письма, которые должны быть локализованы на основе пользователей '. язык. Мне удалось отобразить правильные локализованные представления, но у меня есть некоторые трудности с некоторыми полями, которые требуют изменения локали (например, предмета). Я уже прочитал некоторые сообщения, которые не поддерживают изменение языка перед отправкой электронного письма. У пользователей много разных языков, и это будет означать изменение моей локали каждый раз, когда пользователю отправляется электронное письмо.
Я знаю, что можно будет изменить язык, отправить электронное письмо, изменить язык обратно. Это не похоже на путь рельсов. Есть ли правильный способ сделать это?
Вот фрагмент:
class AuthMailer < ActionMailer::Base
add_template_helper(ApplicationHelper)
default :from => PREDEF_MAIL_ADDRESSES::System[:general]
[...]
def invite(address, token, locale)
@token = token
@locale = locale
@url = url_for(:controller => "signup_requests", :action => "new", :token => token.key, :locale => locale)
mail(:subject => "Invitation", :to => address) do |format|
format.html { render ("invite."+locale) }
format.text { render ("invite."+locale) }
end
end
[...]
end
Мои взгляды
auth_mailer
invite.en.html.erb
invite.en.text.erb
invite.it.html.erb
invite.it.text.erb
...
Короче говоря, в этом случае я хотел бы локализовать: subject с помощью @locale, но не запустив: I18n.locale = locale