diff --git a/lib/acts_as_ordered_tree.rb b/lib/acts_as_ordered_tree.rb index c13d11e..58faee9 100644 --- a/lib/acts_as_ordered_tree.rb +++ b/lib/acts_as_ordered_tree.rb @@ -33,7 +33,8 @@ def acts_as_ordered_tree(options = {}) :class_name => name, :foreign_key => options[:parent_column], :order => options[:position_column], - :inverse_of => (:parent unless options[:polymorphic]) + :inverse_of => (:parent unless options[:polymorphic]), + :dependent => :destroy } [:before_add, :after_add, :before_remove, :after_remove].each do |callback| @@ -83,7 +84,7 @@ def acts_as_ordered_tree(options = {}) after_save "move_to_child_with_index(parent, #{position_column})", :if => "#{position_column} && (#{position_column}_changed? || #{parent_column}_changed?)" - before_destroy :destroy_descendants + before_destroy :flush_descendants after_destroy "decrement_lower_positions(#{parent_column}_was, #{position_column}_was)", :if => position_column # setup validations diff --git a/lib/acts_as_ordered_tree/instance_methods.rb b/lib/acts_as_ordered_tree/instance_methods.rb index f2f06f2..a343a7a 100644 --- a/lib/acts_as_ordered_tree/instance_methods.rb +++ b/lib/acts_as_ordered_tree/instance_methods.rb @@ -329,9 +329,7 @@ def set_scope! #:nodoc: end end - def destroy_descendants #:nodoc: - descendants.delete_all - # flush memoization + def flush_descendants #:nodoc: @self_and_descendants = nil end diff --git a/lib/acts_as_ordered_tree/version.rb b/lib/acts_as_ordered_tree/version.rb index 0242c1c..50bf6d3 100644 --- a/lib/acts_as_ordered_tree/version.rb +++ b/lib/acts_as_ordered_tree/version.rb @@ -1,3 +1,3 @@ module ActsAsOrderedTree - VERSION = "1.0.3" + VERSION = "1.0.4" end