Ruby使用条件运算符检查当前路径

时间:2019-05-17 10:03:26

标签: ruby-on-rails ruby

我正在尝试创建一个导航栏,以突出显示我所在页面上的li项目。

在下面的代码中,我试图使用条件运算符来查看当前路径是否正确。至少我认为这就是我要做的。

<li id="home-link" data-hook class="<%= root_path ? "active" : "" %>"><%= link_to Spree.t(:Home), spree.root_path %></li>
<% if spree_current_user %>
  <li id="home-link" data-hook class="<%= products_path ? "active" : "" %>" ><%= link_to Spree.t(:products), spree.products_path %></li>
<% end %>

然后我希望发生的是,如果我在主页上,则li的类别为active

当前发生的是,所有li项都使该类处于活动状态。

如何检查当前路径?

1 个答案:

答案 0 :(得分:0)

否,您正在测试路径助手是否为true,并且它们是否返回String。这就是始终设置active的原因。

看看current_page?

<% product_active = 'active' if current_page?(controller: 'products', action: 'index') %>
<li id="home-link" data-hook class="<%= product_active %>">

编辑:作为@NensiMakawana麻袋,您也可以使用active_link_to宝石。