summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/initializers/10-patches.rb19
-rw-r--r--lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb2
2 files changed, 19 insertions, 2 deletions
diff --git a/config/initializers/10-patches.rb b/config/initializers/10-patches.rb
index 0ddbcdd06..881206c9e 100644
--- a/config/initializers/10-patches.rb
+++ b/config/initializers/10-patches.rb
@@ -203,6 +203,8 @@ module ActionController
end
end
+require 'awesome_nested_set/version'
+
module CollectiveIdea
module Acts
module NestedSet
@@ -211,6 +213,23 @@ module CollectiveIdea
new_record? || leaf_without_new_record?
end
alias_method_chain :leaf?, :new_record
+ # Reload is needed because children may have updated
+ # their parent (self) during deletion.
+ if ::AwesomeNestedSet::VERSION > "2.1.6"
+ module Prunable
+ def destroy_descendants_with_reload
+ destroy_descendants_without_reload
+ reload
+ end
+ alias_method_chain :destroy_descendants, :reload
+ end
+ else
+ def destroy_descendants_with_reload
+ destroy_descendants_without_reload
+ reload
+ end
+ alias_method_chain :destroy_descendants, :reload
+ end
end
end
end
diff --git a/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb b/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb
index 81ecbc6b3..c831c48fc 100644
--- a/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb
+++ b/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb
@@ -593,8 +593,6 @@ module CollectiveIdea #:nodoc:
["#{quoted_right_column_name} = (#{quoted_right_column_name} - ?)", diff]
)
- # Reload is needed because children may have updated their parent (self) during deletion.
- reload
# Don't allow multiple calls to destroy to corrupt the set
self.skip_before_destroy = true
end