rails
と一緒に始めてancestry
の宝石ではじめて始まった。if else文を使ってルビーを反復する...(祖先の宝石に沿って)
Iは、他のカテゴリのオブジェクトにlink_to
への有線ボタンを表示するために、特定のカテゴリがに関連して、ancestry
GEMを介してツリー構造に格納されているCategory
オブジェクトの配列を反復処理しようとしています。
データベースの最初の3つのカテゴリはルーツであるため、すべての子孫のボタンを表示するのに十分なスペースがビューにはありません。したがって、category.parent == 'nil'
の場合は、指定されたカテゴリの子のみを表示したいと考えています。
他のすべてのカテゴリオブジェクトについては、特定のカテゴリのすべての子孫を表示したいと考えています。
<%= current_user.folders.each do |folder| %>
<% if folder.is_root? %>
<% folder.children.each do |child| %>
<%= link_to child, folder_path(child), class: 'btn' %>
<% end %>
<% else %>
<% folder.descendants.each do |desc| %>
<%= link_to desc, folder_path(desc), class: 'btn' %>
<% end %>
<% end %>
を反復処理するように私は、誰もが助言することができるだろう、これらの線に沿って何かを考えていましたか?
ツリー構造を確立するために祖先の宝石を使用しようとしています... – jmcgillion
これは基本的に何をしていますか...しかし、私は与えられたカテゴリオブジェクトのIDに基づいて反復する方法を理解するのに苦労しています...あなたの応答diegoのためのtx、それは理解されています... – jmcgillion
'ancestry'宝石は私が上で説明したように正確に動作します。あなたが "指定されたカテゴリのIDに基づいて反復"することが何を意味するかわからない。 'id'を使うと' category = Category.find id'というカテゴリを見つけることができます。そして、ancestry gemは 'children'メソッド' category.children'を与えます。オブジェクトのツリーをナビゲートする方法はたくさんあります。 – DiegoSalazar