2

この投稿を見ました

Ruby on Rails - 素晴らしいネストされたセットのプラグイン

しかし、ノードを使用せずに同じことを行う方法を知りたいですか? また、コード自体でこのノードが正確に何をしているのか疑問に思っています。

私のカテゴリ ビュー フォルダーには、_category.html.erb と _full_categores_list.html.erb があります。

_category.html.erb には、上記のリンクと同じ方法である次のコードがあります。

<li>
  <%= category.name %>

 <% unless category.children.empty? %>
   <ul>
      <%= render category.children %>
   </ul>
 <% end %>
</li>

_full_categories_list.html.erb には次のコードがあります。

<ul>
  <% YourModel.roots.each do |node| %>
    <%= render node %>
  <% end %>
</ul>

このコードは完全に正常に動作します。ただし、これらのファイルの複製を作成したいと仮定して、_full_categories_list.html.erb の代わりに _half_categories_list.html.erb を作成したとします。これは、コードで少し異なることを行う可能性があります。

上記の _full_categories_list.html.erb で使用したものと同様のコードを使用すると、_category.html.erb を呼び出し続けます。

_half_categories_list.html.erb と _category.html.erb の代わりに _half_category.html.erb のようなファイルを使用して、すべての猫、サブ猫、およびサブサブ猫を表示するにはどうすればよいですか

ハーフ カテゴリとフル カテゴリは、ファイルごとに異なることを行っていることを示すための単なる名前です。これが理にかなっていることを願っています。上記のリンクのコードの機能を基本的に複製したいのですが、_half_category.html.erb ファイルに別の機能を入れようとしているため、_category.html.erb の代わりに _half_category.html.erb を使用します。

4

1 に答える 1

2

renderまず、:partialとオプションを使用して _full_categories_list.html.erb を記述する簡単な方法があり:collectionます。

<ul>
  <%= render :partial => :category, :collection => YourModel.roots %>
</ul>

_full_categories_list.html.erbこれは、上で書いたものと同等です。

rootsによって提供される名前付きスコープawesome_nested_setです。モデルにさらにスコープを追加できます。たとえば、名前付きスコープを呼び出しますhalf_roots(方法については、リンクを参照してください)。

これを念頭に置いて、_half_categories_list.html.erb次のように書くことができます。

<ul>
  <%= render :partial => :half_category, :collection => YourModel.half_roots %>
</ul>

その後、 を使用_half_category.html.erbして、必要な特別な方法でカテゴリをレンダリングできます。

于 2010-08-05T09:14:13.507 に答える