From cbb34dbab646de7d91f9b1773707551e08abadda Mon Sep 17 00:00:00 2001 From: David Schovanec Date: Thu, 18 May 2017 15:30:03 +0200 Subject: [PATCH] Preserve mutation_changes when updating parent_id --- lib/closure_tree/hierarchy_maintenance.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/closure_tree/hierarchy_maintenance.rb b/lib/closure_tree/hierarchy_maintenance.rb index e9fe761e..23000e56 100644 --- a/lib/closure_tree/hierarchy_maintenance.rb +++ b/lib/closure_tree/hierarchy_maintenance.rb @@ -42,10 +42,20 @@ def _ct_after_save rebuild! end if public_send(changes_method)[_ct.parent_column_name] && !@was_new_record + tmp_previous_mutation_tracker = @previous_mutation_tracker + tmp_mutation_tracker = @mutation_tracker + tmp_mutations_from_database = @mutations_from_database + tmp_mutations_before_last_save = @mutations_before_last_save + # Resetting the ancestral collections addresses # https://github.com/mceachen/closure_tree/issues/68 ancestor_hierarchies.reload self_and_ancestors.reload + + @previous_mutation_tracker = tmp_previous_mutation_tracker + @mutation_tracker = tmp_mutation_tracker + @mutations_from_database = tmp_mutations_from_database + @mutations_before_last_save = tmp_mutations_before_last_save end @was_new_record = false # we aren't new anymore. @_ct_skip_sort_order_maintenance = false # only skip once.