2015-06-23 30 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

相關問題