Dav*_*son 5 ruby-on-rails actionmailer
我想将一些元数据添加到我的操作邮件程序预览页面的标题中。我认为最简单的方法是在我的项目中的某个位置覆盖此文件: https://github.com/rails/rails/blob/4-2-stable/railties/lib/rails/templates/rails/mailers/email。 html.erb
鉴于 lib/templates 文件夹中的其他内容可以被覆盖,我认为类似的内容也可以工作。我尝试过以下方法但没有运气:
是否可以以某种方式覆盖该文件,如果可以的话在哪里?
好的,所以我最终成功了。不确定这是否是最好的解决方案,但它有效。
首先,我复制了问题中提到的 email.html.erb 并将其放置在 test/mailers/previews 中。然后我对其进行了所需的自定义并将其重命名为 email_preview_heading.html.erb。
接下来,我创建了一个新的初始化程序,并覆盖了 MailersController。我将原始代码中的整个预览方法放在里面,可以在这里找到:https ://github.com/rails/rails/blob/4-2-stable/railties/lib/rails/mailers_controller.rb
我在初始化程序中所做的唯一更改是在第 35 行,如下所示,该行告诉预览控制器要使用哪个布局。其余方法保留如前。
#config/initializers/email_preview_controller_override.rb
if Rails.env.development?
class ::Rails::MailersController
def preview
...
render file: Rails.root.join('test/mailers/previews/email_preview_heading')
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
在布局文件中,我显示元数据作为标题传递到电子邮件,这意味着我可以像这样访问它们:@email.header['description']
确保仅在预览模式下传递标题。
| 归档时间: |
|
| 查看次数: |
1743 次 |
| 最近记录: |