For creating I used
contact_ids = params[:ticket_note][:contact_ids].reject(&:blank?)
contact_ids.each do |contact_id|
@ticket_note_recipient = TicketNoteRecipient.new
@ticket_note_recipient.ticket_note_id = @ticket_note.id
@ticket_note_recipient.account_contact_id = contact_id
@ticket_note_recipient.save
end
For Updating I used
contact_ids = params[:ticket_note][:contact_ids].reject(&:blank?)
@d_ticket_note_recipients = TicketNoteRecipient.where(:ticket_note_id =>@ticket_note)
.where.not(:account_contact_id => contact_ids).delete_all
contact_ids.each do |contact_id|
@ticket_note_recipient = TicketNoteRecipient.where(:ticket_note_id =>@ticket_note)
.where.not(:account_contact_id => contact_id).first
if @ticket_note_recipient.blank?
@ticket_note_recipient = TicketNoteRecipient.new
@ticket_note_recipient.ticket_note_id = @ticket_note.id
@ticket_note_recipient.account_contact_id = contact_id
@ticket_note_recipient.save
end
end
How can we do this with fewer database transactions?