我有以下类型的页面设置:
标题 - 一致 左侧 - 包含<%= yield%> 右侧 - ul主要包含静态菜单
所以,我想做的是 a)在当前页面li中添加一个类。例如,当在about页面上时,右边的li会添加.current
和b)显示当前页面右侧的子菜单。因此,如果li是about.current,我可以在li里面显示一个子菜单。
每个页面都有布局(这是应用程序布局的目的),并不是每个页面都列在右侧的菜单中。所以,问题是我可以传递一个变量或调用,将页面名称传递给应用程序布局,以允许添加.current或处理这样的事情的最佳方法是什么?答案是在应用程序布局中不包含正确的菜单栏,即使我需要将其添加到每个页面?
寻找建议。
答案 0 :(得分:1)
current_page?
辅助方法可以告诉您网址是否适用于当前页面。所以你可以做类似以下的事情:
<li><%= link_to "Something", something_url, :class => (current_page?(something_url) ? "current" : "") %></li>
更好的是,您可以定义一个自动执行此操作的辅助方法:
def link_to_with_current_class(name, url, options = {})
if current_page?(url)
if options[:class]
options[:class] += " current"
else
options[:class] = "current"
end
end
link_to(name, url, options)
end
然后:
<li><%= link_to_with_current_class "Something", something_url %></li>
http://apidock.com/rails/ActionView/Helpers/UrlHelper/current_page%3F