From 755108566c0c21760eeae17654ebd37767ed2b9c Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Wed, 26 Mar 2014 01:48:04 +0000 Subject: [PATCH] awesome_nested_set: split highest rgt reader method (#6579) git-svn-id: http://svn.redmine.org/redmine/trunk@13010 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- .../lib/awesome_nested_set/awesome_nested_set.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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 259de5a08..a6c7cf299 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 @@ -538,15 +538,18 @@ module CollectiveIdea #:nodoc: end end - # on creation, set automatically lft and rgt to the end of the tree - def set_default_left_and_right - highest_right_row = + def right_most_bound + right_most_node = self.class.base_class.unscoped. order("#{quoted_right_column_full_name} desc").limit(1).lock(true).first - maxright = highest_right_row ? (highest_right_row[right_column_name] || 0) : 0 + right_most_node ? right_most_node[right_column_name] : 0 + end + + # on creation, set automatically lft and rgt to the end of the tree + def set_default_left_and_right # adds the new node to the right of all existing nodes - self[left_column_name] = maxright + 1 - self[right_column_name] = maxright + 2 + self[left_column_name] = right_most_bound + 1 + self[right_column_name] = right_most_bound + 2 end def in_tenacious_transaction(&block)