ruby jak wygenerować tablicę formularza struktury drzewa?

Mam tablicę, która ma taką listę

arr = [
  {:id=>1,  :title=>"A",      :parent_id=>nil}, 
  {:id=>2,  :title=>"B",      :parent_id=>nil},
  {:id=>3,  :title=>"A1",     :parent_id=>1}, 
  {:id=>4,  :title=>"A2",     :parent_id=>1},
  {:id=>5,  :title=>"A11",    :parent_id=>3}, 
  {:id=>6,  :title=>"12",     :parent_id=>3},
  {:id=>7,  :title=>"A2=121", :parent_id=>6}, 
  {:id=>8,  :title=>"A21",    :parent_id=>4},
  {:id=>9,  :title=>"B11",    :parent_id=>2}, 
  {:id=>10, :title=>"B12",    :parent_id=>2},
   ...
]

Jeśliparent_id jestnil wtedy powinien być węzłem nadrzędnym, jeśliparent_id nie jestnil to powinno być pod konkretnym rodzicem.

Oparte naid iparent_id, Chcę udzielić odpowiedzi w ten sposób:

-A
  -A1
    -A11
    -A12
      -A123
  -A2
    -A21
-B
  -B1
    -B11
    -B12

Jak mogę wygenerować odpowiedzi wymienione powyżej?

Dzięki

questionAnswers(3)

yourAnswerToTheQuestion