我的Rails 3.2应用程序中有许多邮件程序,我希望所有邮件都使用相同的电子邮件布局。该布局包括页眉和页脚,其中包括要内联使用的图像。我想遵循Rails的DRY原则,但我不完全确定最佳实践是什么。
正如this answer指出的那样,我可以使用AbstractController::Callbacks
创建before_filter
来添加内联附件。但是我该怎么做以及在一个模块中设置布局,然后我可以将其包含在邮件程序中?
我目前的想法是创建一个名为DefaultMailer
的新邮件程序类,然后让我想要使用从该类继承的布局的所有邮件程序。或者创建一个可以处理这些任务的问题。在尝试使用其中一种技术破解某些东西之前,我想我会在这里询问是否有人在此之前成功完成此操作以帮助指导我。
答案 0 :(得分:2)
AFAIK从其他邮件程序继承时存在一些问题(即不继承设置)。
常见的解决方案是创建邮件程序基础模块。这是现有项目的片段:
module MailerBase
extend ActiveSupport::Concern
included do
helper :application
layout 'mailer'
default from: "#{AppConfig.application_name} <#{AppConfig.mailer_sender}>"
end
end
你可以将它与你的回调结合起来,虽然包括远程图像更常见,可以说是更好的解决方案。