我有一个名为Taxons的类别列表:
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。我的想法是某种&lt;%if:class =&gt; '当前%&gt;显示LI,否则什么都不显示。
任何人都知道这是否可行?
答案 0 :(得分:0)
难道你不能只重用相同的条件来添加类属性吗?
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 %>
答案 1 :(得分:0)
在控制器上添加即时变量。 喜欢
def blablabla
@current_page = Category.name
if params[:id => @current_page]
@current = "current"
else
@current = ""
end
end
并在此处更改
<li<%= ' class="#{@current}"' if @taxon and ([@taxon] + @taxon.ancestors).include?(taxon) %>><%= link_to taxon.name, seo_url(taxon) %></li>