我有一个有很多孩子的模型。我是这样设置/删除孩子的:
mymodel.children_ids = [1,2,3]
mymodel.save #add the children
mymodel.children_ids = [1]
mymodel.save #remove children 2,3
这工作得很好,但我刚刚意识到没有一个回调(即after_destroy
)没有在子模型上被调用。
经过一番挖掘,事实证明该delete_all
函数正在执行,而不是destroy_all
. 正如文档正确指出的那样,该delete_all
函数不会触发回调,所以无论如何要改变这种行为?
谢谢。