この単純な配列をactiverecordから配信しました
[#<Product id: 1, parent_id: , text: "Hurray">, #<Product id: 2, parent_id: 1, text: "Hurray again">, #<Product id: 3, parent_id: 1, text: "Hurray again 2">, #<Product id: 4, parent_id: 2, text: "Boo yeah !">]
ご覧のとおり、各エントリにはparent_id
. ここでのアイデアは、Product
をその子製品と一緒にグループ化することです。現在、子製品を識別する方法は、そのparent_id
です。たとえば、Product 2's
親製品はProduct 1
です。
これで、以下に示すように、結果が配信されるように、データベースとコントローラーのすべてのアクションをセットアップしました。
とはいえ、簡単な形式で詳細を表示することは今できません。おそらくRails erbページのように見えるはずです
1. Product 1 has products
2. Product 2 has products
1. Product 4
3. Product 3 has products
Nil
4. Product 4 has products
Nil
すべての製品のループを実行して、 if 条件を次のように設定してみif n.parent_id.present?
ました。しかし、結果が複数のレベルであり、結果が常に異なることを期待していることがわかります。
ここでのヘルプやガイダンスは大歓迎です。
ありがとう
更新:私が試したのはこれです
<%@products.each do |n|%>
<li><%=Product "#{n.id}" has products%></li>
<%if n.parent_id.present?%>
<li><%=Product "#{n.id}" has products%></li>
<%end%>
<%end%>
ここで見られる問題は、レベルが深すぎる場合に if/else を使用し続けることができないことです。つまり、製品のスレッド ベースのビューを表示しようとしています。
私が理にかなっていることを願っています:)。