有一个非常相似的问题SO https://stackoverflow.com/questions/47624334/error-update-or-delete-on-table-users-violates-foreign-key-constraint-fk-rai。给出的答案如下:
先删除用户11的评论,或者更改外键,使其“on”
删除级联”模式 - 删除父级将导致自动
删除子记录
但我以为这就是目的dependent: :destroy
。当您删除记录时,它会删除其关联。
我有以下内容:
class Venue < ApplicationRecord
has_many :entrees, dependent: :destroy
end
class Entree < ApplicationRecord
belongs_to :venue
end
我尝试以下操作:
Venue.delete_all
DELETE FROM "venues"
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update or delete on table "venues" violates foreign key constraint "fk_rails_8fda228aa3" on table "entrees"
我是否错过了目的dependent: :destroy
?还如果dependent: :destroy
只是为了删除没有外键约束的关联,那么如何删除有外键约束的依赖项呢? Rails 有 CASCADE 选项吗?
它的工作尝试这个
ActiveRecord::Base.connection.disable_referential_integrity do
Book.destroy_all
Genre.destroy_all
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)