我正在尝试使用基本的current_page方法来定义是否应将导航链接突出显示为当前页面。
我目前没有收到任何错误,但显然没有正确定义,因为它没有正确使用我的CSS。
在我的PagesController中,我有以下内容:
def current_page
current_page = (path)
end
我在我的页面视图中使用if和else语句来尝试定义要使用的CSS行,如下所示:
<div id="nav">
<ul>
<li>
<% if "current_page" %>
<a href="/about" class="about-cp">About</a>
<% else %>
<a href="/about" class="about">About</a>
<% end %>
</li>
</ul>
</div>
我已经阅读了不少论坛,但似乎仍然无法做到正确。
答案 0 :(得分:3)
你的代码中有错误。使用if "current_page"
,您将始终为真,并且只会呈现第一个链接。您应该使用if current_page
代替。
但是rails有一个内置帮助程序,名为current_page?
,正是出于这个目的:
就这样做:
<% if current_page?(path) %>
<a href="/about" class="about-cp">About</a>
<% else %>
<a href="/about" class="about">About</a>
<% end %>
有关current_page?
答案 1 :(得分:2)
klump的答案符合你的要求,但我敢提出一个不同的方法:
<div id="nav">
<ul>
<li>
<%= link_to_unless_current 'About', about_path %>
</li>
</ul>
</div>
这样,如果当前页面为About
,则about_path
将显示为文本,并显示为任何其他页面上的链接。
答案 2 :(得分:0)
<a href="/about" class="<%= "active" if current_page?(path) %>">About</a>