Если вы используете has_and_belongs_to_many
, запись ассоциации находится в таблице соединений, например lists_contacts.Так что только одна сторона операции, такая как list.contacts.delete contact
, удалит эту строку, и этого достаточно.
Например:
list = List.create
contact = Contact.create
list.contacts << contact
list.save
p contact.lists # => [#<List id: 5, name: nil>]
list.contacts.delete contact
list.save
p contact.reload.lists # => []