2015-05-13 29 views
0

我想解僱我Job模型的after_save回調,只有當它具有添加或更改就可以了Surveyor(假定:一個也存在過)。Rails的模型回調時has_and_belongs_to_many已經改

# 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方法正確觸發?

+0

'r.surveyor_ids.present?'爲什麼你需要檢查嗎?在'after_save'中,因爲它會創建一個持久實例 –

+0

你能澄清你的意思嗎? – gosseti

+0

我的意思是你可以使用'after_update'回調你的測量員模型並檢查它是否改變了? –

回答

相關問題