当关联对象被销毁时,如何将belongs_to关联设置为Nil

koo*_*nse 8 ruby-on-rails

说我有:

class Car < ActiveRecord::Base
  belongs_to :brand
end

class Brand < ActiveRecord::Base
  has_many :cars
end
Run Code Online (Sandbox Code Playgroud)

如果我销毁一个Brand对象,那么子Cars仍将其car.brand_id属性设置为已销毁brand.id.

car.brand_id当摧毁母品牌时,我怎么能淘汰儿童车?

我认为ActiveRecord关系会处理这个问题,并防止孤立的对象.

我不想要dependent: :destroy汽车,但只想让他们的car.brand_id设置为零.

我不想为此写一个after_commit,我希望Rails魔术来处理这个问题.或者不太理想的是外键约束.

Bob*_*Bob 16

怎么样dependent: :nullifyBrand模式?

4.3.2.4:依赖

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

...

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

...

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