加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读