尝试删除记录时出现错误:
[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
调用中的哪个列/表没有正确的了解。
答案 0 :(得分:1)
使用摧毁,
$Pattern = '~mp3:\h+"((https?://)?\S+\.(mp3|ogg))"~im';
删除仅会删除父记录,而如果它有子记录则没有删除,如果使用destroy,它将删除子记录和父记录,因此,如果删除父记录,则没有该孤儿的子记录