私の無知を許してください、私はRubyは初めてですが、プログラミングはしていません。アプリケーションに階層データを格納するために Ancestry という gem を使用しています。ノード内のすべての子孫の子、孫などのネストされたハッシュを返す「子孫」と呼ばれるメソッドがありますが、各ノードをループしてすべての子ノードを出力しようとすると苦労しています。
データ構造はこんな感じ
{
#<Forum id: 16, name: "Parent 1", ancestry: "7", display_order: 1> =>{},
#<Forum id: 17, name: "Parent 2", ancestry: "7", display_order: 2> =>{},
#<Forum id: 13, name: "Parent 3", ancestry: "7", display_order: 3> =>
{
#<Forum id: 14, name: "Child 1", ancestry: "7/13", display_order: 1> =>{},
#<Forum id: 15, name: "Child 2", ancestry: "7/13", display_order: 2> =>
{
#<Forum id: 18, name: "Grand Child", ancestry: "7/13/15", display_order: 1> =>{},
}
}
}
以下のコードを使用してそのデータをループすると、最終的に画面にレンダリングされるのは親ノードだけです。
<% forum.descendants.arrange(:order => :display_order).map do |forum,key| %>
<%= render :partial => 'forum', :locals => {:forum => forum} %>
<% end %>
子ノードもレンダリングするにはどうすればよいですか? 「キー」変数を介してアクセスできることは知っていますが、「キー」変数にレンダリング可能なデータがいつ含まれているか、およびそのデータを出力する方法を知る方法がわかりません。助言がありますか?