所以我在application.html.erb文件中有这个:
<div class="mainMenu">
<%= link_to 'Movies', dvds_path %>
<%= link_to 'Books', books_path %>
<%= link_to 'Albums', cds_path %>
<%= link_to 'Games', games_path %>
</div>
如果我们在每个页面上,我想在菜单上放置一个“突出显示”类,例如,在电影页面中,如果我们在dvds_path中那么它将是:
<%= link_to 'Movies', dvds_path, :class => 'highlight' %>
但似乎无法弄明白,这些方法都不适合我:
任何帮助将不胜感激
答案 0 :(得分:1)
您可以使用:
link_to_unless_current(name, options = {}, html_options = {}, &block)
使用由选项集创建的URL创建给定名称的链接标记,除非当前请求URI与链接相同,在这种情况下仅返回名称(或者给出给定的块,如果有存在)。您可以为link_to_unless_current提供一个专门用于默认行为的块(例如,显示“Start Here”链接而不是链接的文本)。
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to_unless_current
因此,您可以在导航栏中将“链接”设置为未选中,并在链接不存在时使用“选定”样式。
li { color:#fff; } /* selected */
li a { color:#333; }
li a:hover { color:#999; }
<ul id="navbar">
<li>Home</li>
<li><a href="/controller/about">About Us</a></li>
</ul>
答案 1 :(得分:0)
我很确定如果你把它放在一个do块中,你可以在链接是最新的时分配一个备用内容值。
如果当前操作是给定的操作,则评估给予link_to_unless_current的隐式块。所以,如果我们有一个评论页面并希望呈现一个“返回”链接而不是链接到评论页面,我们可以做这样的事情......
<%=
link_to_unless_current("Comment", { :controller => "comments", :action => "new" }) do
image_tag src=>"/image.jpg"
end
%>