Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
803 views
in Technique[技术] by (71.8m points)

ruby-on-rails - 删除父项时,Rails将子项关联ID设置为nil(Rails Set child association id to nil when deleting parent)

This is my association set up between my Collection and Album models:

(这是我的Collection夹和Album模型之间建立的关联:)

class Collection < ActiveRecord::Base
  has_many :children, class_name: "Collection", foreign_key: "parent_id"
  belongs_to :parent, class_name: "Collection", foreign_key: "parent_id", optional: true
  has_many :albums
end

class Album < ActiveRecord::Base
  has_many :photos, dependent: :destroy
  belongs_to :collection, optional: true
end

I've just deleted all the Collection 's, and I expected the collection_id of each Album to be returned to NULL as the parent no longer exists.

(我刚刚删除了所有Collection ,并且我希望每个Albumcollection_id都将返回NULL因为父级不再存在。)

How can I make sure this happens when an Album 's parent Collection is deleted?

(如何删除Album的父Collection Album时发生这种情况?)

  ask by rctneil translate from so

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

使用dependent: nullify在您的Collection dependent: nullify模型中dependent: nullify

has_many :albums, dependent: :nullify

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...