Ruby on Rails latest stable (v5.2.3) - 0 notes

Module deprecated or moved

This module is deprecated or moved on the latest stable version. The last existing version (v1.2.6) is shown here.

Specify this act if you want to model a tree structure by providing a parent association and a children association. This act requires that you have a foreign key column, which by default is called parent_id.

  class Category < ActiveRecord::Base
    acts_as_tree :order => "name"

   \_ child1
        \_ subchild1
        \_ subchild2

  root      = Category.create("name" => "root")
  child1    = root.children.create("name" => "child1")
  subchild1 = child1.children.create("name" => "subchild1")

  root.parent   # => nil
  child1.parent # => root
  root.children # => [child1]
  root.children.first.children.first # => subchild1

In addition to the parent and children associations, the following instance methods are added to the class after specifying the act:

  • siblings : Returns all the children of the parent, excluding the current node ([ subchild2 ] when called from subchild1)
  • self_and_siblings : Returns all the children of the parent, including the current node ([ subchild1, subchild2 ] when called from subchild1)
  • ancestors : Returns all the ancestors of the current node ([child1, root] when called from subchild2)
  • root : Returns the root of the current node (root when called from subchild2)
Show files where this module is defined (1 file)
Register or log in to add new notes.