2011-09-25 193 views
7

是否可以自定义Rails 3.1 ActionMailers的模板路径?默认情况下,Rails的外观如下:Rails 3.1 ActionMailer自定义模板路径?

/app/views/[mailer_class] 

用于邮件程序视图模板。但是,我宁愿组织他们在:

/app/mailers/views/[mailer_class] 

或至少:

/app/views/mailers/[mailer_class] 

我知道这是可能在通过的ActionMailer的template_path配置参数2.3,但是这似乎是不赞成的Rails 3.这种定制不再可能吗?

回答

12

这种自定义仍然是可能的。有几种不同的方法可以实现这一点,这取决于您的邮件编写者的方式。

如果你有format.html格式的块,你可以传递渲染'/ path/to/template'。

或者,如果你只是调用邮件()有用于设定路径和模板名称,你应该只需要传递的路径选择两个选项:

mail(:template_path => 'mailers/[mailer_class]', :template_name => '[mailer_method]') 

你应该检查出的Rails指南更详细的信息。

http://guides.rubyonrails.org/action_mailer_basics.html#mailer-views

+2

我见过的文档,但我还没有想通了,template_path是相对于/应用/视图。谢谢! – odonnellt