gpt4 book ai didi

ruby-on-rails - 当关联的对象被销毁时,如何将belongs_to关联设置为Nil

转载 作者:行者123 更新时间:2023-12-04 04:39:43 26 4
gpt4 key购买 nike

说我有:

class Car < ActiveRecord::Base
belongs_to :brand
end

class Brand < ActiveRecord::Base
has_many :cars
end

如果销毁Brand对象,则子Car仍将其 car.brand_id属性设置为销毁的 brand.id

销毁父品牌时,如何清除子车的 car.brand_id

我以为ActiveRecord关系将处理此问题,并防止孤立的对象。

我不想对汽车进行 dependent: :destroy,而只想将其 car.brand_id设置为nil。

我不想为此写一个 after_commit,我想让Rails魔术来处理这个。或更不理想的是外键约束。

最佳答案

那么dependent: :nullify模型上的Brand呢?

4.3.2.4:依赖

控制销毁所有者时关联对象发生的情况:

...
:nullify导致外键设置为NULL。不执行回调。

...

http://guides.rubyonrails.org/association_basics.html#has-many-association-reference

关于ruby-on-rails - 当关联的对象被销毁时,如何将belongs_to关联设置为Nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408400/

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