【发布时间】:2010-01-12 09:34:06
【问题描述】:
我有一个有很多孩子的模特。我是这样设置/删除孩子的:
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 函数不会触发回调,所以无论如何要改变这种行为?
谢谢。
【问题讨论】:
标签: ruby-on-rails activerecord associations has-many