ActiveRecord :: InvalidForeignKey: PG :: ForeignKeyViolation - PullRequest
0 голосов
/ 22 января 2020

Я запускаю грабли для копирования некоторых живых данных в демонстрационных целях. Перед каждым повторным копированием я хочу удалить старые записи. Но когда я пытаюсь 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 должны удалить ассоциации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...