Rails - 使用布局对所有电子邮件使用相同的附件

2024-01-08

我可能遗漏了一些明显的东西,但我有一个徽标,我想将其包含在从我的应用程序发送的所有电子邮件中。我有一个用于所有这些邮件的主布局。我认为有一种方法可以使其保持干燥,而不必在每个邮件程序方法中添加代码行来附加文件。有人可以指出我正确的方向或纠正我的思路吗?

Thanks!


未来的 Rails 版本将支持使用 before_filter 和 after_filter 的回调:

http://github.com/rails/rails/commit/4f28c4fc9a51bbab76d5dcde033c47aa6711339b http://github.com/rails/rails/commit/4f28c4fc9a51bbab76d5dcde033c47aa6711339b

由于它们将使用 AbstractController::Callbacks 实现,因此您可以执行以下操作来模仿 Rails 4 发布后 ActionMailer::Base 中将出现的功能:

class YourMailer < ActionMailer::Base
  if self.included_modules.include?(AbstractController::Callbacks)
    raise "You've already included AbstractController::Callbacks, remove this line."
  else
    include AbstractController::Callbacks
  end

  before_filter :add_inline_attachments!

  private
  def add_inline_attachments!
    attachments.inline["footer.jpg"] = File.read('/path/to/filename.jpg')
  end
end

这包括将在未来 Rails 版本中使用的模块,因此您可用的回调挂钩将是相同的,以确保未来的兼容性。当您尝试升级到已包含 AbstractController::Callbacks 的 Rails 版本时,该代码将会引发,因此系统会提醒您删除条件逻辑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails - 使用布局对所有电子邮件使用相同的附件 的相关文章

随机推荐