このプラグインを使用するときにネストされたセット全体を表示する簡単な方法はありますか? 私がやりたいのは、ルートノードの順序付けられていないリストを、子などを含む各子内に別の順序付けられていないリストとともに表示することですか?
アドバイスをいただければ幸いです。
ありがとう。
このプラグインを使用するときにネストされたセット全体を表示する簡単な方法はありますか? 私がやりたいのは、ルートノードの順序付けられていないリストを、子などを含む各子内に別の順序付けられていないリストとともに表示することですか?
アドバイスをいただければ幸いです。
ありがとう。
これを行うにはいくつかの方法があります。最も簡単な方法は、ルートから始めて、各ノードとその子を解析することです。最初に行うことは、ノード マークアップのパーシャルを作成することです。
_your_model.html.erb
<li>
<%= your_model.name %>
<% unless your_model.children.empty? %>
<ul>
<%= render your_model.children %>
</ul>
<% end %>
</li>
次に、最初のルート ノードがレンダリングされるようにビューを編集します。
<ul>
<% YourModel.roots.each do |node| %>
<%= render node %>
<% end %>
</ul>
your_model.children を使用すると、検出されるたびにデータベースで別のヒットが必要になりますが、これは望ましくありません。
ネストされた ul タグと li タグを 1 つのデータベース ヒットだけで生成するのに役立つヘルパーを作成しました。必要に応じてこのヘルパーを変更できます。
1つのクエリでセット全体を取得できます。Category.order("lft ASC")
そして、あなたが:depth
コラムを持っているなら、出来上がり!すべてに対する1つのクエリで、:depthを使用するようにビューを記述します。