Установите ActionMailer для использования "foo.fr.erb", когда I18n.locale установлен в: en - PullRequest
3 голосов
/ 22 октября 2010

У меня есть этот код:

class Mailer < ActionMailer::Base

  def foo
    recipients "bar@example.com"
    from       "foo@example.com"
    subject    "Foo"
    body       :var => "value"
  end

end

С двумя видами в app/views/mailer:

  • foo.en.erb
  • foo.fr.erb

Когда я использую Mailer.deliver_foo, для построения электронного письма используется представление foo.en.erb, поскольку I18n.locale установлено на :en. Есть ли способ обойти это и использовать foo.fr.erb, кроме временного задания языкового стандарта на :fr, отправки электронного письма и последующего возврата к :en.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 30 октября 2012

У меня были проблемы с этим, поэтому кажется, что это разумное место для публикации моих результатов

Rails автоматически найдет шаблон на основе I18n.locale

Но, это НЕПРАВИЛЬНО: foo.html.fr.erb

Это правильный способ называть вещи: foo.fr.html.erb

0 голосов
/ 24 октября 2010

Я наконец нашел ответ здесь .

def foo user
  @template = "#{ActionMailer::Base::template_root}/mailer/foo.fr.erb"

  recipients "bar@example.com"
  from       "foo@example.com"
  subject    "Foo"
  body       :var => "value"
end
...