【发布时间】:2019-06-15 00:37:45
【问题描述】:
我在尝试删除记录时遇到错误:
[2] pry(main)> d = Deal.last
[3] pry(main)> d.delete
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update or delete on table "deals" violates foreign key constraint "fk_rails_78857af2ef" on table "origin_airports"
我在 SO 上找到了一个答案,导致我将 has_many :origin_airports, dependent: :destroy 添加到我的 Deal 模型中,这解决了问题。
嗯,它上周解决了问题,然后又回来了。如果它有所作为,这是自上周以来创建的记录,尽管我无法想象这意味着什么。我不认为我的代码自从我上次能够删除以来根本没有改变(只是在为数据库做种)。
我尝试通过新的迁移添加它:add_foreign_key :origin_airports, :deals, column: :deal_id, on_delete: :cascade
这不起作用,但我可能没有正确掌握 add_foreign_key 调用中的哪个列/表。
【问题讨论】:
标签: ruby-on-rails activerecord database-migration