jruby on Rails : 如何高亮当前页面用户当前所在的导航栏列表项

jruby on Rails : How to highlight the current navigation bar list item which the page user currently in

我只是第一次在 Rails 上尝试 jRuby。

在我的项目中,我想在导航栏中遍历 root/app/views/pages 下的三个页面。

我的导航栏是

  <div class ="navbar">
        <ul>
            <li <%= class = is_active?("home") %> ><%= link_to 'Home', {:controller => 'pages', :action => 'home'} %></li>
            <li><%= link_to 'About Us', {:controller => 'pages', :action => 'about'} %></li>
            <li><%= link_to 'Contact Us', {:controller => 'pages', :action => 'contact'} %></li>
        </ul>
    </div>

我的 CSS 文件包含

    .navbar .active {
           background-color: #4CAF50;
           color: white;
    }

经过一番谷歌搜索后,我创建了一个助手

   module PagesHelper
      def is_active?(page_name)
          "active" if params[:action] == page_name
      end
   end

在 project_root/app/helpers/pages_helper.rb 中,以便根据我当前所在的页面在导航栏项目中突出显示。

这给了我

app/views/layouts/application.html.erb:18: 语法错误,意外的 '=' ...@output_buffer.append=( class = is_active?("home") );@输出... ... ^ actionview (4.2.6) lib/action_view/template.rb:296:in module_eval' actionview (4.2.6) lib/action_view/template.rb:296:in编译' actionview (4.2.6) lib/action_view/template.rb:245:in block (2 levels) in compile!' activesupport (4.2.6) lib/active_support/notifications.rb:166:in仪器' actionview (4.2.6) lib/action_view/template.rb:333:in instrument' actionview (4.2.6) lib/action_view/template.rb:244:in 阻止编译!' actionview (4.2.6) lib/action_view/template.rb:232:in synchronize' actionview (4.2.6) lib/action_view/template.rb:232:in编译!' actionview (4.2.6) lib/action_view/template.rb:144:in block in render' activesupport (4.2.6) lib/active_support/notifications.rb:166:in仪器'

请帮忙。

我找到了答案。在我的导航栏 div 中,我不得不像这样从 <%= %> 中使用 "class = "。

    <ul>
        <li class = <%= is_active?("home") %> ><%= link_to 'Home', {:controller => 'pages', :action => 'home'} %></li>
        <li class = <%= is_active?("about") %>><%= link_to 'About Us', {:controller => 'pages', :action => 'about'} %></li>
        <li class = <%= is_active?("contact") %>><%= link_to 'Contact Us', {:controller => 'pages', :action => 'contact'} %></li>
    </ul>