在运行时设置ActionMailer template_root

时间:2010-03-25 04:36:16

标签: ruby-on-rails actionmailer

是否可以在运行时为ActionMailer设置template_root?我似乎可以通过使用以下方式在开发模式中执行此操作:

ActionMailer::Base.template_root = my_view_path if File.exists (File.join(my_view_path,"test_mailer"))

我正在检查我的特殊view_path中是否存在邮件程序视图目录,并且如果它存在则使用该View_path作为ActionMailer。否则保留默认值。这是在请求时发生的,而不是在environment.rb中的配置时发生的。在开发模式下工作。

当我将其移动到我的生产服务器时,我在运行时遇到错误,它无法在apps / views中找到xxx.erb文件。所以它仍然在查看默认路径而不是我的特殊视图路径。我正在记录调试语句,可以看到template_root已正确设置,但似乎应用程序没有使用它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

请参阅http://www.quirkey.com/blog/2008/08/28/actionmailer-hacking-multiple-template-paths/以及我的评论。我知道这是一个老问题,但我被困了几天。希望这会对某人有所帮助。