我有这段代码:
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
。
谢谢!
答案 0 :(得分:3)
这有麻烦,所以这似乎是发表我的发现的合理位置
Rails会根据I18n.locale
自动找到模板但是,这是错误的:foo.html.fr.erb
这是命名事物的正确方法:foo.fr.html.erb
答案 1 :(得分:0)
我终于找到了答案here。
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