重构用于在导航中指定活动li的简单rails代码



我正试图根据用户所在的页面设置一个活动的li类。

我有4个导航元素,它们看起来都像这样:

<% if @activeLi == "home" %>          
    <li class="active">
<% else %>
    <li>
<% end %>
    <%= link_to :controller => "home" do %>
        <span>Home</span>
    <% end %>
</li>

然后在每个控制器中,我只设置@activeLi如下:

def index
    @activeLi = "about"
end

我知道这是非常基本的东西,但我只是想知道是否有更简单的方法可以做到这一点?

我知道有一种方法可以简化这一点,那就是不需要使用那些讨厌的实例变量。

<li class="<%= controller_name == "home" ? 'active': '' %>">
    <%= link_to :controller => "home" do %>
        <span>Home</span>
    <% end %>
</li>

最新更新