2011-09-25 174 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