2012-07-20 52 views
1

我有一个安装了Twitter Bootstrap的Rails应用程序。引导封装在一个HTML列表元素每个导航条链接,就像这样:使用Rails设置HTML元素的类?

<ul class="nav"> 
    <li><a href="#home">Home</a></li> 
    <li><a href="#products">Products</a></li> 
    <li><a href="#settings">Settings</a></li> 
</ul> 

当链路是当前页面,引导允许您通过设置列表元素的类(而不是链接本身),以突出它“主动”,就像这样:

<li class="active"><a href="#products">Products</a></li> 

我的问题是:你如何设置列表元素的类为‘活动’(如果当前页面)编程方式使用Rails?

我知道如何做一个链接。例如:

<%= link_to "Products", products_path, :class => "active" if current_page?(:controller => "products") %> 

但我不知道如何做父母的列表元素。

回答

2

使用content_tag helper

<%= content_tag :li, :class => 'active' do %> 
    List item contents 
<% end %> 
+0

但如何设置类为“主动”,只有当它是当前页面?我试过'<%= content_tag:li,:class =>'active'if current_page?(:controller =>“products”)do%>'但这不起作用。 – 2012-07-20 03:54:47

+0

啊,算出来。需要成为: '<%= content_tag:li,:class =>('active'if current_page?(:controller =>“products”))do%>'。 换句话说,类的值需要封装在圆括号中。 @georgebrock你能更新你的答案来反映这一点吗? – 2012-07-20 03:58:29