Search code examples
ruby-on-railsnested-setsacts-as-nested-set

How to reorder nodes within a node using awesome_nested_set


If I have a tree like this:

Page1
---Page1.1
---Page1.2
---Page1.3

Using awesome_nested_set, how would I move Page1.x up or down within the Page1 node?

Thanks.


Solution

  • From http://github.com/collectiveidea/awesome_nested_set/blob/master/lib/awesome_nested_set.rb :

    # Shorthand method for finding the left sibling and moving to the left of it.
    def move_left
      move_to_left_of left_sibling
    end
    
    #Shorthand method for finding the right sibling and moving to the right of it.
    def move_right
      move_to_right_of right_sibling
    end
    
    # Move the node to the left of another node (you can pass id only)
    def move_to_left_of(node)
      move_to node, :left
    end
    
    # Move the node to the left of another node (you can pass id only)
    def move_to_right_of(node)
      move_to node, :right
    end