一旦它的所有者(即它所属的记录)被销毁,我想要销毁Book
。
如果只有一个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
将会被摧毁。
答案 0 :(得分:0)
我相信你想要一个多态的belongs_to关联。
我仍然在检查:dependent => :destroy
...
研究发现“当belongs_to与另一个类的has_many关系一起使用时,不应指定此选项,因为可能会留下孤立的记录。”这似乎并不完全相同,但似乎暗示它将是一个手动过程,即删除两个dependent => :destroy
语句并删除子程序/父记录(手动)。