我正在创建一个有这些关系的工作板,用户可以申请许多工作,而工作有很多应用者(用户)。公司有很多工作。
用户:
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我有一些错误,在用户申请工作后,我需要更改或添加什么来向公司发送电子邮件?谢谢。
答案 0 :(得分:1)
将after_create :send_email
和send_email
方法移至作业模型,因为您希望在创建作业记录时触发此电子邮件(即,当用户申请作业时) < / p>
对send_email方法的更改(通知争论自我)
def send_email NotificationMailer.job_application(self).deliver end
简化您的NotificationMailer
方法
def job_application(job) @applications = job.applications mail(to: job.company.email, subject: 'Ha recibido una postulacion') end