我的layout / application.html.erb中有一个ul填充了链接,并希望当前位置链接标记为class =“active”。
现在我正在使用:
<%= link_to 'About Us', { :controller => 'aboutus' }, :class => "menu#{' active' if params[:controller] == 'aboutus'}" %>
但它对我来说看起来很讨厌。
任何人都有更好的主意吗?
答案 0 :(得分:14)
link_to_unless_current
方法实际上并不创建链接,也没有添加活动类。如果您仍想这样做,可以使用current_page
方法检查当前页面是否与您指定的路线匹配:
<ul id="main_nav">
<li><%= link_to "Search", search_path, :class => ('active' if current_page?(search_path)) %></li>
</ul>
或者如果你想在包装元素上添加类:
<li class="<%= 'active' if current_page?(search_path) %>">
<%= link_to "Search", search_path %>
</li>
答案 1 :(得分:5)
您可以使用类似于link_to
的帮助方法它叫做“link_to_unless_current”。
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html(在此处查找详细信息)
HTH
答案 2 :(得分:0)
带有li标签的根路径的示例,我尝试使用content_tag进行,但是if if case的优雅方式没有运气
<li<%= " class='active'".html_safe if current_page?(root_path) %>>
<%= link_to "Home", root_path %>
</li>
我有一些问题,当我用引导程序保持班级空白时(如果我记得很清楚)