以下のコードのようなテーブルを作ろうとしております。
(親のIDとアイテム名を表示させるテーブル)

その実装にいわゆる入れ子モデル?の方式で実装を進めております。

アイテム
-サブアイテム
--サブアイテム
---サブアイテム

という風に階層を深くしていくテーブルを実装中で、コードは以下になります。
以下のコードで深い階層のサブアイテムも表示させようとすると、childrenのループの中に、さらにループをたして、その中にさらにループを・・・とやっていくと、できなくはないですが、もう少し上手な方法ができないかと考えております。

while文で試して見たのですが、無限ループにかかってしまい、上手く出来ませんでした。

どなたかやり方が分かる方はいらっしゃいますでしょうか?
宜しくお願いします。

※item.childrenでのchildrenはアイテムのprent_idを見て、該当するサブアイテムを複数返します。

tbody
  -@items.each do |item|
    tr
      td #{item.parent_id}
      td #{item.name}
      td
        tbody
          -item.children.each do |child_item|
            tr
              td #{child_item.parent_id}
              td #{child_item.name}