假设我有一个Post
模型:
class Post < ActiveRecord::Base
belongs_to :category
end
和Category
模型:
class Category < ActiveRecord::Base
has_many: :posts
end
我可以使用dependent: :destroy
删除特定类别时删除所有帖子,但我不想删除帖子,我只想删除与该特定类别的关联,只需设置这些帖子的category_id
列为nil
。
开箱即用是否有“Rails方式”,或者我是否需要使用一些回调?
答案 0 :(得分:6)
使用dependent :: nullify
根据Rails指南:
:nullify导致外键设置为NULL。回调不是 执行。
所以你有:
class Category < ActiveRecord::Base
has_many: :posts,
dependent: :nullify
end