2

Book一旦它的所有者(即它所属的记录)被销毁,我想销毁它。

如果只有一种belongs_to关系,则dependent选项 simple 有效。

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一旦它的所有所有者都被摧毁,我想摧毁它。如果 aCart和 aShop拥有相同的Book,并且 theShop被销毁但Cart不是,则Book不会被销毁。

4

1 回答 1

0

我相信你想要一个多态的 belongs_to 关联。

我还在检查:dependent => :destroy它...

研究发现“当 belongs_to 与另一个类的 has_many 关系一起使用时,不应指定此选项,因为可能会留下孤立的记录。” 这并不完全相同,但似乎暗示这将是一个手动过程,即删除两个dependent => :destroy语句并以编程方式(手动)删除子/父记录。

于 2012-07-25T19:05:23.380 回答