ruby-on-rails – Rails – 对DELETE的PG外键违规
发布时间:2020-12-17 03:50:06 所属栏目:百科 来源:网络整理
导读:我有一个具有场地和客户端的应用程序. 每个场地都有很多客户: class Venue ActiveRecord::Base has_many :clientsend 当我试图删除一些场地时,Postgres抱怨外键约束违规: PG::ForeignKeyViolation: ERROR: update or delete on table "venues" violates fo
我有一个具有场地和客户端的应用程序.
每个场地都有很多客户: class Venue < ActiveRecord::Base has_many :clients end 当我试图删除一些场地时,Postgres抱怨外键约束违规: PG::ForeignKeyViolation: ERROR: update or delete on table "venues" violates foreign key constraint "fk_rails_3afaf2f5fc" on table "clients" DETAIL: Key (id)=(3) is still referenced from table "clients". : DELETE FROM "venues" WHERE "venues"."id" = $1 通过向关联添加dependent :: destroy来解决这个问题很简单. 但我想留住客户,即使他们没有更多的场地. 解决方法
您可以使用nullify.它会将客户端上的venue_id设置为null.但是您需要从列中删除外键约束.
has_many :clients,dependent: :nullify (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |