如果页面处于活动状态,则更改li类

时间:2014-10-02 17:17:52

标签: jquery html css ruby-on-rails ruby-on-rails-4

在rails中,如果页面处于活动状态,我想更改li元素的类。我做了一个应用程序助手,但代码不起作用。如果我将代码放在元素之外,它确实有效。 (比如在p标签内)

我的应用程序帮助文件如下所示:

  def activepage(path)
    ' class="active"' if current_page?(path)
  end

这就是侧边栏的部分外观:

    <li<%= activepage(root_path) %>>
        <a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
    </li>

如果我加载页面,看起来似乎没有创建li。知道为什么以及最优雅的解决方法是什么?

谢谢!

3 个答案:

答案 0 :(得分:0)

尝试通过将查看代码更改为:

来调试问题
<li <%= current_page?(root_path) ? "class=active" : "class=not-active" %>>
    <a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
</li>

如果current_page?(root_path)为真,那么li类将处于活动状态,如果current_page?(root_path)为false,则该类将不会处于活动状态。

如果current_page?(root_path)返回false,那么这就是您的问题,class="active"永远不会被添加。

答案 1 :(得分:0)

&LT; li&#34;&lt;%= activepage(root_path)%&gt;&#34; &GT;

请将ruby代码放在引号内。 还要确保helper方法按预期返回值。

还可以尝试查看生成的html代码,使用firebug或检查它。

答案 2 :(得分:0)

我通过将帮助器放在class =“helper”中来修复它。

<li class="<%= activepage(root_path) %>">