Rails:当用户申请工作时,向公司发送电子邮件通知

时间:2016-04-29 20:16:48

标签: ruby-on-rails ruby email

我正在创建一个有这些关系的工作板,用户可以申请许多工作,而工作有很多应用者(用户)。公司有很多工作。

用户:

has_many :applications

has_many :jobs, :through => :applications, :uniq => true

工作

has_many :applications

has_many :users, :through => :applications

应用

 belongs_to :user 

 belongs_to :job

公司

has_many :jobs, dependent: :destroy

我想实现一项功能,当用户申请工作时,该功能会向公司发送电子邮件。

这是我的邮件:

class NotificationMailer < ActionMailer::Base
  default from: "email@gmail.com"

  def job_application(company)
    @company = company
    @job = job        
    @applications = @job.applications
    company = @job.application.company
    mail(to: @company.email, subject: 'Ha recibido una postulacion')
  end
end

application.rb中

after_create :send_email

def send_email
  NotificationMailer.job_application(self.company).deliver
end

obvioulsy我有一些错误,在用户申请工作后,我需要更改或添加什么来向公司发送电子邮件?谢谢。

1 个答案:

答案 0 :(得分:1)

  1. after_create :send_emailsend_email方法移至作业模型,因为您希望在创建作业记录时触发此电子邮件(即,当用户申请作业时) < / p>

  2. 对send_email方法的更改(通知争论自我)

    def send_email
      NotificationMailer.job_application(self).deliver
    end
    
  3. 简化您的NotificationMailer方法

    def job_application(job)
       @applications = job.applications
       mail(to: job.company.email, subject: 'Ha recibido una postulacion')
    end