在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。知道为什么以及最优雅的解决方法是什么?
谢谢!
答案 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) %>">