Я запускаю грабли для копирования некоторых живых данных в демонстрационных целях. Перед каждым повторным копированием я хочу удалить старые записи. Но когда я пытаюсь Host.where(organization_id: target_org_id, customer_slug: target_customer_slug).destroy_all
, я получаю следующую ошибку:
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update or delete on table "hosts" violates foreign key constraint "fk_rails_f66d1a8a7f" on table "event_attendees"
Модели выглядят примерно так:
class Host
has_many :event_attendees, inverse_of: :host, dependent: :destroy
has_many :events, -> { distinct }, through: :event_attendees
end
class Attendee
has_many :event_attendees, inverse_of: :attendee, dependent: :destroy
has_many :events, through: :event_attendees
end
class Event
has_many :event_attendees, inverse_of: :event, dependent: :destroy
has_many :attendees, through: :event_attendees
end
class EventAttendee
belongs_to :event, inverse_of: :event_attendees
belongs_to :attendee, inverse_of: :event_attendees
belongs_to :host, inverse_of: :event_attendees
end
Я думал, dependent: :destroy
должны удалить ассоциации?