预期功能 - 删除asset_line_item时删除所有链接的asset_items。 (不使用销毁,destroy_all)。我使用的是Postgresdelete_all在每次删除时都不起作用
以下模型:
class AssetLineItem < PurchaseLineItem
has_many :asset_items
...
after_destroy :destroy_cleanup
private
def destroy_cleanup
asset_items.delete_all
end
end
这导致剩余asset_items,但是他们所有的asset_line_item列都设置为null。
def destroy_cleanup
asset_items.each do |asset_item|
asset_item.delete
end
end
与回路替换DELETE_ALL以上但是具有删除所有相关asset_items的预期的结果。
尽管我有工作代码,但我很好奇可能导致delete_all以这种方式行事吗?
我需要删除,所以我的功能不得不看过去的破坏。依赖:: delete_all实际上工作。我想我只是困惑了为什么使用dependent :: delete_all与调用asset_items.delete_all有不同的结果。当我认为会是相同的结果有不同的结果我担心我有某个地方的根本问题。 虽然这是正确的答案 - 它告诉我为什么我的delete_all调用只是将参考归零。我不知道delete_all(:delete_all)干杯! – scottysmalls