我有一个名为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
所选类别附加了css类current。我的想法是某种<% if :class =>的当前%>显示LI,否则不显示任何内容。
有人知道这是不是可能的?
发布于 2009-12-05 06:59:36
您不能在添加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 %>发布于 2009-12-05 15:52:28
在你的控制器上添加即时变量。喜欢
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>https://stackoverflow.com/questions/1850097
复制相似问题