优雅的方式在rails部分中添加css类

时间:2016-08-05 10:54:49

标签: ruby-on-rails ruby ruby-on-rails-4 erb

我有部分内容显示在侧边栏中,如下所示

  

__ side_bar_partials.html.erb

<div class="col-sm-3">
  <div class="account-left">              
    <ul>
      <li class="active"><a href="menu1">Menu1</a></li>
      <li><a href="menu2">Menu2</a></li>
      <li><a href="menu3">Menu3</a></li>
      <li><a href="menu4">Menu4</a></li>
      <li><a href="menu5">Menu5</a></li>
    </ul>
  </div>
</div>

现在当我渲染这部分时我需要的是我想在所选菜单上添加css class有效添加

现在我用正常方式渲染它

 <%= render "profile_sidebar"%>

我需要包含在上面的代码中,以便在所选菜单上添加活动类

1 个答案:

答案 0 :(得分:2)

基本上你有2个选择。 首先是检查当前页面并突出显示正确的菜单选项。

<div class="col-sm-3">
  <div class="account-left">              
    <ul>
      <li class="<%= 'active' if current_page?(menu1_path) %>"><a href="menu1">Menu1</a></li>
      <li class="<%= 'active' if current_page?(menu2_path) %>">><a href="menu2">Menu2</a></li>
      <li class="<%= 'active' if current_page?(menu3_path) %>">><a href="menu3">Menu3</a></li>
      <li class="<%= 'active' if current_page?(menu4_path) %>">><a href="menu4">Menu4</a></li>
      <li class="<%= 'active' if current_page?(menu5_path) %>">><a href="menu5">Menu5</a></li>
    </ul>
  </div>
</div>

但是既然你正在寻找更优雅的方式,我会建议第二种选择:为你的列表元素做一个单独的帮助。带有帮助器的解决方案完美地描述了here

希望它有所帮助。