存储在数据库中的 ActionMailer 模板

ActionMailer Template stored in DB

这里的问题是

"Is it bad practice to store email templates in DB and render?"

我知道这是人们不适用的。 (通常它是从 .erb 渲染的并且很好用,应该尽可能避免访问数据库。)

但下面有业务需求

第三方交易邮箱服务商可以存储历史记录,但我需要存储在本地。

所以我正在考虑在数据库中存储模板并呈现它,这样即使模板发生变化我也可以跟踪发送了哪些电子邮件。

有什么建议吗?

For business reasons, I need to have the history for each emails. (Who's got sent, what title and bodies are sent.)

您可以采用以下方法:

  1. 创建数据库支持的 AR 模型,例如 EmailsHistory
  2. 每次发出电子邮件时创建 EmailsHistory 的实例。

## Columns:
#  * title
#  * recipient
#  * body
#  * anything else
#
class EmailsHistory
end

然后,在发送电子邮件时,只需向 emails_history table 添加一行,其中包含您需要了解的所有列。