2015-06-23 34 views
1

我有一个包含文章模型的应用程序。无论何时编辑文章,用户都可以按照文章接收电子邮件。如何在更新特定型号属性时发送邮件

当前,电子邮件会发送每个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的邮件?

任何想法赞赏!

回答

0

可以调用after_update回调方法

型号/ article.rb

after_update :send_email 

def send_email 
    UserMailer.email_notification(self.user).deliver 
end 
+0

如何指定只发送邮件,如果特定的属性在更新变化,或者在身体交流电子邮件,哪些模型字段已更改? – user2799827

相关问题