2013-02-01 3 views
3

메뉴 탐색 기능이있는 레이아웃이 있습니다. 온라인에서 찾은 템플릿을 사용하고 있습니다. 각 메뉴 항목에 대한 HTML 페이지가 있으며 li 항목 클래스는 해당 페이지마다 "selected"라고합니다. 그것은 다음과 같습니다레일에서 메뉴 항목의 클래스를 변경하는 방법

<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를 사용해야합니까? 당신의 연결

컨트롤러와 액션 이름은

답변

1

나는 당신이 current_page? 도우미 메서드를 원한다고 생각 params 해시에서보기에 사용할 수 있습니다. 이들은 다른 작업/컨트롤러가있는 경우에 따라서, 당신은 다음과 같은 것을 수행 할 수 있습니다

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

개인적으로 큰이 방식의 팬과 직접 내보기에이 유지 아니에요. 보통, 나는 나의 도우미로 논리를 밀어 넣고 사용한다.

0

난 당신이 그런 짓을 할 생각 -

관련 문제