存储在数据库中的 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.)
您可以采用以下方法:
- 创建数据库支持的 AR 模型,例如
EmailsHistory
- 每次发出电子邮件时创建
EmailsHistory
的实例。
## Columns:
# * title
# * recipient
# * body
# * anything else
#
class EmailsHistory
end
然后,在发送电子邮件时,只需向 emails_history
table 添加一行,其中包含您需要了解的所有列。
这里的问题是
"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.)
您可以采用以下方法:
- 创建数据库支持的 AR 模型,例如
EmailsHistory
- 每次发出电子邮件时创建
EmailsHistory
的实例。
## Columns:
# * title
# * recipient
# * body
# * anything else
#
class EmailsHistory
end
然后,在发送电子邮件时,只需向 emails_history
table 添加一行,其中包含您需要了解的所有列。