我一直在尝试解决这个问题。我有一个导航,其中列表项获得一个"活跃"在那个页面上。我还需要为这些列表项的锚点提供一个唯一的类。所以我的代码是:
Application_helper
def link_to_with_current_class(name, options)
if current_page?(options)
content_tag :li, link_to(h(name), options), :class => "current"
else
content_tag :li, link_to(h(name), options)
end
end
导航
<ul id="nav">
<%= link_to_with_current_class "work", home_path %>
<%= link_to_with_current_class "about", about_path %>
<%= link_to_with_current_class "contact", contact_path %>
</ul>
这生成
<ul id="nav">
<li class="current"><a href="/">work</a></li>
<li><a href="/about">about</a></li>
<li><a href="/contact">contact</a></li>
</ul>
我需要它来生成
<ul id="nav">
<li class="current"><a **class="work"** href="/">work</a></li>
<li><a **class="about"** href="/about">about</a></li>
<li><a **class="contact"** href="/contact">contact</a></li>
</ul>
我尝试了很多方法,但我尝试的一切都打破了它。对这个问题的任何帮助都会有很大的帮助。
答案 0 :(得分:1)
这看起来可能有效:
def link_to_with_current_class(name, options)
if current_page?(options)
content_tag :li, link_to(h(name), options, :class => name), :class => "current"
else
content_tag :li, link_to(h(name), options, :class => name)
end
end