gpt4 book ai didi

ruby-on-rails - Rails 4 关系和 Postgres 外键约束

转载 作者:行者123 更新时间:2023-11-29 13:00:05 24 4
gpt4 key购买 nike

我正在使用 Rails 4 开发一个库存跟踪应用程序,目的是记录每个用户所做的交易。我建立了三个具有以下关系的模型:

项目:has_many:交易

用户:has_many :transactions

事务:belongs_to :user, belongs_to :item

用户 ID 和项目 ID 是交易表中的外键,用于将用户和项目与每笔交易相关联。

当我尝试删除项目或用户时出现问题。我希望事务保留,所以我没有启用依赖销毁,但是Postgres外键约束不允许删除,错误如下:

ActiveRecord::InvalidForeignKey(PG::ForeignKeyViolation:错误:表“items”上的更新或删除违反了表“transactions”上的外键约束“fk_rails_37b3ea4e18”

是否有更好的方法来设置这种关系,使交易与用户和项目相关联,但在用户或项目被删除后仍然存在?

最佳答案

您需要删除外键约束。

您还可以保留外键约束并使用“软删除”,一旦用户被设置为已删除,它可以将 bool 字段设置为真。

事实是:如果您使用外键约束,那么您将需要进行级联删除。

关于ruby-on-rails - Rails 4 关系和 Postgres 外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32889463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com