删除所有者时从记录中删除引用ID

时间:2016-02-03 07:34:07

标签: ruby-on-rails activerecord associations

假设我有一个Post模型:

class Post < ActiveRecord::Base
  belongs_to :category
end

Category模型:

class Category < ActiveRecord::Base
  has_many: :posts
end

我可以使用dependent: :destroy删除特定类别时删除所有帖子,但我不想删除帖子,我只想删除与该特定类别的关联,只需设置这些帖子的category_id列为nil

开箱即用是否有“Rails方式”,或者我是否需要使用一些回调?

1 个答案:

答案 0 :(得分:6)

使用dependent :: nullify

根据Rails指南:

  

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

所以你有:

class Category < ActiveRecord::Base
  has_many: :posts,
             dependent: :nullify
end