初めてご質問させて頂きます。
現在、rubyにて複数ユーザーの親子関係を表すハッシュを作成する関数を作成しているのですが、シンボルを用いたハッシュへの代入にて失敗しています。

    def createChild(child_id)
      return {
        person_id: child_id,
        children: []
      };
    end

    def searchTree(rootTree, id)
      rootTree[:children].map{|tree|
        if tree[:person_id] == id
          return tree
        end
      }
      rootTree[:children].map{|tree|
        searchTree(tree, id)
      }
    end

    def putChild(root_tree, child_id, parent_id)
      if parent_id == 0
        root_tree[:children] << createChild(child_id)
      else
        target = searchTree(root_tree, parent_id)
        target[:children] << createChild(child_id) #エラー地点
      end
    end

    tree_map = {person_id: nil, children: []}
    putChild(tree_map, 1, 0)
    putChild(tree_map, 2, 0)
    putChild(tree_map, 3, 1)
    putChild(tree_map, 4, 1)
    putChild(tree_map, 5, 1)
    puts tree_map
    puts 'try'
    putChild(tree_map, 6, 3)
    puts tree_map

メソッドputChildを計6回呼び出していますが、6回目の実行時に #エラー地点 にてエラーが発生しております。

上記ファイルの実行結果が

{:person_id=>nil, :children=>[{:person_id=>1, :children=>[{:person_id=>3, :children=>[]}, {:person_id=>4, :children=>[]}, {:person_id=>5, :children=>[]}]}, {:person_id=>2, :children=>[]}]}
try
sample.rb:24:in `[]': no implicit conversion of Symbol into Integer (TypeError)
from sample.rb:24:in `putChild'
from sample.rb:36:in `<main>'

です。

同じ呼び出し方で5回成功して、6回目が失敗するのがどうにも原因がわからず、もしお判りの方がいらっしゃいましたらご教示頂けますと幸いです。

よろしくお願いいたします。