2013-02-01 74 views
3

我有一個菜單導航的佈局。我正在使用我在網上找到的模板。每個菜單項都有一個HTML頁面,每個相應頁面的li項目類別被稱爲「已選擇」。它看起來像這樣:如何在Rails中更改菜單項的一個類

<nav> 
    <ul class="sf-menu" id="nav"> 
     <li class="selected"><%= link_to "home", root_path %></li> 
     <li><%= link_to "about me", about_path %></li> 
     <li><%= link_to "my portfolio" %> 
     <ul style="z-index: 2;"> 
      <li style="z-index: 2;"><%= link_to "portfolio one", portfolio_one_path %></li> 
      <li style="z-index: 2;"><%= link_to "portfolio two", portfolio_two_path %></li> 
      <li style="z-index: 2;"><%= link_to "portfolio three", portfolio_three_path %></li> 
     </ul> 
     </li> 
     <li><%= link_to "blog", blog_path %></li> 
     <li><%= link_to "contact", contact_path %></li> 
    </ul> 
    </nav> 

所以這是在我的application.html.erb文件。我的問題是,如何根據用戶點擊的鏈接以編程方式將每個li項目的類更改爲「selected」?這可以用Ruby來完成,還是需要使用JavaScript?

回答

0

我想你想要做的事,如:你的鏈接

0

控制器和動作的名稱是

<%= link_to "portfolio one", portfolio_one_path, class: current_page?(products_path) ? "selected" : "not_selected" %> 

在params散列中可用於您的視圖。所以,如果這些不同的行動/控制器,你可以這樣做如下:

<li class=<%= "selected" if params[:controller] == 'portfolio' && params[:action] == 'action_name' %>><%= link_to "portfolio one", portfolio_one_path %></li> 

我個人沒有這種方法的忠實粉絲,在我的觀點直接保持這一點。通常,我將邏輯推送給我的幫手並使用它們。

相關問題