是否可以在运行时为 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 中的配置时。在开发模式下工作。
当我将它移动到我的生产服务器时,我在运行时收到一个错误,它无法在应用程序/视图中找到 xxx.erb 文件。所以它仍然在默认路径而不是我的特殊视图路径中查找。我正在记录调试语句,可以看到 template_root 已正确设置,但似乎应用程序没有使用它。
有任何想法吗?