SO上有一个非常相似的问题。给出的答案如下:
首先删除用户11的评论,或者更改外键以便进行"开启 删除级联"模式 - 删除父级将导致自动 删除子记录
但我认为这是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选项?
答案 0 :(得分:0)
尝试以下
Venue.destroy_all
这对我有用
Venue.delete_all
不工作
答案 1 :(得分:0)
它的工作尝试这个
ActiveRecord::Base.connection.disable_referential_integrity do
Book.destroy_all
Genre.destroy_all
end