У меня есть приложение, в котором есть модель статей. Пользователи могут следить за статьей, чтобы получать электронные письма, когда эта статья редактируется.Как отправить почтовое сообщение, когда обновляется конкретный атрибут модели
В настоящее время электронные письма отправляются для каждого изменения 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 к почтовой программе?
Любые идеи оценены!
Как указать для отправки почты только если конкретные атрибуты изменяются в процессе обновления, или же общаться в теле электронной почты, какие поля модели были изменены? – user2799827