【发布时间】:2014-02-16 15:58:24
【问题描述】:
我有一个 is_active?帮助在我的导航栏中定义活动链接。它工作正常。但是我有一个客户端页面,其中包含许多客户端(在侧边栏列表中),当我单击每个客户端时,页面会重新加载并获取客户端 ID 的 URL(/clientes/1、/clientes/2 .. .)。我的 is_active?仅适用于第一个客户端 (id=1)。当我单击其他客户端时,活动类消失了。
我的标题视图如下所示:
<nav class="navbar navbar-inverse navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="container" id="container-header">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<%= link_to "Zetta Comunicação", root_path, class: "navbar-brand logo img-responsive" %>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav navbar-right">
<li class="<%= is_active?(servicos_path) %>">
<%= link_to "A Empresa", servicos_path %>
</li>
<li class="<%= is_active? (cliente_unique_path(1)) %>">
<%= link_to "Clientes", cliente_unique_path(1) %>
</li>
<li class="<%= is_active?(new_contato_path) %>">
<%= link_to "Contato", new_contato_path %>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div>
</nav>
助手看起来像这样
def is_active?(link_path)
if current_page?(link_path)
"active"
else
""
end
end
我知道我在标题视图中调用了第一个 id (id=1)。但我不知道如何调用其他 id..
如果我采用 cliente_unique_path 的 (1) 它非常适合客户页面,但我在其他页面中收到以下错误:
没有路由匹配 {:action=>"cliente_unique", :controller=>"clientes"} 缺少必需的键:[:id]
有什么想法吗?
【问题讨论】:
标签: html ruby-on-rails ruby-on-rails-4