我有一个名为Taxon的类别列表:
Rails代码在这里:
<div id="taxonomies" class="sidebar-item">
<% @taxonomies.each do |taxonomy| %>
<ul class="navigation-list">
<% taxonomy.root.children.each do |taxon| %>
<li<%= ' class="current"' if @taxon and ([@taxon] + @taxon.ancestors).include?(taxon) %>><%= link_to taxon.name, seo_url(taxon) %></li>
<% if @taxon.nil? %>
<% else %>
<% @taxon.children.each do |taxon|%>
<li><%= link_to taxon.name, seo_url(taxon) %></li>
<% end %>
<% end %>
<% end %>
</ul>
<% end %>
</div>
现在的问题是,如果我单击视图中的特定分类法,它将向我显示所有父母的孩子。所以...
第1类
子孙1
子孙2
2类
子孙1
子孙2
第3类
子孙1
子孙2
当我想要的是:
第1类
子孙1
子孙2
2类
第3类
Selected类别具有当前附加的CSS类。我的想法是'current%>显示LI,否则不显示任何内容。
有人知道这是否可能吗?
最佳答案
您是否可以重复使用相同的条件来添加class属性?if @taxon and ([@taxon] + @taxon.ancestors).include?(taxon)
因此,您将拥有:
<% taxonomy.root.children.each do |taxon| %>
<li<%= ' class="current"' if @taxon and ([@taxon] + @taxon.ancestors).include?(taxon) %>><%= link_to taxon.name, seo_url(taxon) %></li>
<% if @taxon and ([@taxon] + @taxon.ancestors).include?(taxon) %>
<% @taxon.children.each do |taxon|%>
<li><%= link_to taxon.name, seo_url(taxon) %></li>
<% end %>
<% end %>
<% end %>