【发布时间】:2015-07-24 20:18:18
【问题描述】:
我试图在我的Job 模型上触发after_save 回调,仅当它添加或更改了Surveyor 时(假设也存在)。
# app/models/job.rb
has_and_belongs_to_many :surveyors
after_save :send_mail, if: ->(r) { r.surveyor_ids_changed? and r.surveyor_ids.present? }
# app/models/surveyor.rb
has_and_belongs_to_many :jobs
# permitted parameters on job
:job_name, :job_address, surveyor_ids: []
如何更改模型回调以正确触发 send_mail 方法?
【问题讨论】:
-
r.surveyor_ids.present?为什么需要检查它?在after_save中,因为它将创建一个持久化实例 -
你能澄清一下你的意思吗?
-
我的意思是您可以使用
after_update对您的测量员模型进行回调并检查它changed?
标签: ruby-on-rails ruby ruby-on-rails-4 model callback