在属性更新Rails后发送电子邮件

时间:2017-10-04 14:30:13

标签: ruby-on-rails

我想在更新其pdform状态后向用户发送电子邮件。我已经写了一些关于如何完成这件事的内容。

在我的pdform.rb模型中

after_update :sendemail

def sendemail
  if status_changed?

  end
end

我已经在用户创建新表单时发送了电子邮件,但是,我不确定如何在模型中发送电子邮件。

控制器具有可正常工作的邮件程序功能。我怎么能在这个模型中发送它?

NewPdform.notify_user(current_user, @pdform).deliver

非常感谢任何帮助。仍然掌握着ActiveRecord。


更新

在我的pdforms_controller更新方法中,我添加了以下变量。

update_user = @pdform.user

我在pdform.rb(模型)中添加了一个attr_accessor

attr_accessor :update_user
after_update :sendemail

def sendemail
  NewPdform.notify_update(update_user).deliver
end

在我的邮件中

def notify_update(user)
  @user = user
  mail(to: @user.email, subject: "some change occured")
end

1 个答案:

答案 0 :(得分:0)

在更广泛地使用我的大脑后,我解决了自己的问题。

在调用邮件程序函数而不是传递pdform的参数时,无论如何都是该类的名称,只需传递self即可。

def sendemail
  NewPdform.notify_update(self).deliver
end