销毁所有belongs_to协会销毁的记录
问题描述:
一旦其所有者(即其所有记录)被销毁,我想销毁Book
。销毁所有belongs_to协会销毁的记录
如果只有一个belongs_to
关系,则dependent
选项很简单。
class Book < ActiveRecord::Base
belongs_to :shop
end
class Shop < ActiveRecord::Base
has_many :books, :dependent => :destroy
end
class Cart < ActiveRecord::Base
has_many :books, :dependent => :destroy
end
但是如果还有更多belongs_to
的关系?例如:
class Book < ActiveRecord::Base
belongs_to :shop
belongs_to :cart
end
我要摧毁它的所有者的所有Book
一次被摧毁。如果Cart
和Shop
拥有相同的Book
,并且Shop
被销毁,但Cart
不被销毁,Book
不会被销毁。
答
我相信你想要一个多态的belongs_to关联。
我还是检查上:dependent => :destroy
它...
研究发现,“当belongs_to的结合使用具有的has_many关系上的另一个类,因为离开孤立的记录之势,此选项不应该被指定背后。”这不完全相同,但似乎暗示它将是一个手动过程,即删除dependent => :destroy
两个语句并且手动删除子节点/父节点programmaticaly(手动)。