如何干掉我的活动导航链接?

时间:2015-12-19 21:52:14

标签: ruby-on-rails

我希望将其传递给控制器​​,因此我不必重复或询问路径名称。

<ul class="nav navbar-nav">
    <li><%= link_to 'Breakfast', '/breakfast', class: ('active' if request.path == breakfast_path) %></li>
    <li><%= link_to 'Lunch', '/lunch', class: ('active' if request.path == lunch_path) %></li>
    <li><%= link_to 'Deli', '/deli', class: ('active' if request.path == deli_path) %></li>
    <li><%= link_to 'Contact', '/contact', class: ('active' if request.path == contact_path) %></li>
</ul>

宝石不会被视为答案......

谢谢!

2 个答案:

答案 0 :(得分:3)

我不确定将它传递给控制器​​是一个很好的解决方案 - 它关注视图逻辑,所以我认为视图是处理它的正确级别。也许创建一个包装link_to的辅助方法将是正确的方法。这是一个没有经过测试的想法:

  # YourHelper
  def nav_link_to(label, path)
     link_to(label, path, class: 'active' if path == request.path)
  end

答案 1 :(得分:1)

您可以使用active_link_to gem:

<input type="text" value="">