我有这个数据库设计:
合同因此...
Contract has_one :allotment, :dependent => :delete_all
Allotment belongs_to :contract
Allotment has_many :allotments_rooms, :dependent => :delete_all
Allotments_Rooms belongs_to :allotment
因此,当我删除合约时,分配完全被删除,但分配_room不是。
为什么?
谢谢!
答案 0 :(得分:2)
当您使用:dependent => :delete_all
时,会销毁依赖记录without calling their destroy method,因此他们没有机会销毁自己的相关记录。请改为:dependent => :delete
。
如果你想在数据库级别设置FK约束,我还建议使用the foreigner gem(虽然我不知道它是否适用于rails 2)