Jquery 如何更改Rails中菜单项的类

Jquery 如何更改Rails中菜单项的类,jquery,ruby,ruby-on-rails-3,Jquery,Ruby,Ruby On Rails 3,我有一个带有菜单导航的布局。我正在使用我在网上找到的模板。每个菜单项都有一个HTML页面,每个对应页面的li项类称为“selected”。看起来是这样的: <nav> <ul class="sf-menu" id="nav"> <li class="selected"><%= link_to "home", root_path %></li> <li><%= link_to "abo

我有一个带有菜单导航的布局。我正在使用我在网上找到的模板。每个菜单项都有一个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吗?

我想你需要
当前页面?
助手方法-

  • ...
    我想你应该做以下事情:

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

    对于链接,您的视图可以在参数散列中使用控制器和操作名称。因此,如果这些是不同的操作/控制器,您可以执行以下操作:

    <li class=<%= "selected" if params[:controller] == 'portfolio' && params[:action] == 'action_name' %>><%= link_to "portfolio one", portfolio_one_path %></li>
    
  • 我个人不太喜欢这种方法,并直接将其保留在我的观点中。通常,我会将逻辑推送到助手中并使用它们。

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