【发布时间】:2015-06-23 11:34:47
【问题描述】:
我有一个包含文章模型的应用。用户可以在文章被编辑时关注文章以接收电子邮件。
目前,对于模型的每个属性的每次 picayune 更改都会发送电子邮件。我想指定仅在更改特定属性时才发送邮件,或者在电子邮件中包含在最新更新中更改的属性列表。
我正在使用 paper_trail 来跟踪文章 s.t. 的版本。仅当主要属性发生更改时才会创建新版本。这似乎是一个方便的回调挂钩。即,当创建新版本时,会发送更新。但我不确定是否需要手动创建 Papertrail 模型或执行其他操作。
另外,要创建更改的属性列表,我想我可以使用 changed.keys 方法返回已更改的属性列表,但只能在保存实例之前。我以为我可以做类似的事情:
def update
@article = Article.friendly.find(params[:id])
@changes = @article.changed
if @article.update_attributes(article_params)
...
但是如何将@changes 传递给邮件程序?
任何想法表示赞赏!
【问题讨论】:
标签: ruby-on-rails actionmailer paper-trail-gem