У меня есть модель, у которой много детей. Я устанавливал / удалял детей так:
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
не запускает обратные вызовы, так что, есть ли способ изменить это поведение?
Спасибо.