2017-10-18 93 views
0

我想实现什么?Spree活动菜单

我想添加一个活动菜单(高亮当前页面菜单)到我的spree/ruby​​ on rails应用程序。

我试过了什么?

之后做一些研究,我发现this问题贴非常有帮助,但正如你可能已经猜到了解决方案的实施我found没有得到我想要的结果。

我发现被添加以下代码的解决办法:

守则

application_helper.rb

module ApplicationHelper 

def active_class(link_path) 
    current_page?(link_path) ? "active" : "" 
end 

end 

routes.rb中

root 'spree/home#home' 

    get '/specs', to: 'spree/home#specs' 
    get '/about', to: 'spree/home#about' 
    get '/purchase', to: 'spree/home#purchase' 
    get '/support', to: 'spree/home#support' 

nav.html.erb

<li class="<%= active_class(root_path) %>"> 
<%= link_to "Home", root_path %> 
</li> 

<li class="<%= active_class(purchase_path) %>"> 
<%= link_to "Purchase", purchase_path %> 
</li> 

<li> 
<%= link_to "About", purchase_path %> 
</li> 

<li class="<%= active_class(specs_path) %>"> 
<%= link_to "Technical Details", specs_path %> 
</li> 

<li class="<%= active_class(support_path) %>"> 
<%= link_to 

的错误

但现在,不管我去什么页面,我得到以下错误:

NameError in Spree::Home#purchase 
Showing /home/ubuntu/workspace/mystore/app/views/spree/shared/_nav_bar.html.erb where line #9 raised: 

undefined local variable or method `purchase_path' for #<#<Class:0x007f35a30c6b80>:0x007f35a3642a00> 
Extracted source (around line #9): 


</li> 

<li class="<%= active_class(purchase_path) %>"> 
<%= link_to "Purchase", purchase_path %> 
</li> 

我试着改变几个变量,但无济于事

我的问题是

如何创建在狂欢的活动菜单(因为它是问题的根源)

回答

1

见下面的参考。我已经使用激活而不是主动。你可以风格激活的类此后

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
     <ul class="nav navbar-nav navbar-right" id="link-section"> 
      <li class="<%= 'activated' if current_page?(root_path) %>"> 
       <a href="/">Home 
        <span class="sr-only">(current)</span> 
       </a> 
      </li> 
      <li class="<%= 'activated' if current_page?(new_user_registration_path) %>"> 
       <%= link_to("Register", new_user_registration_path) unless user_signed_in? %> 
      </li> 
      <li class="<%= 'activated' if current_page?(pricing_path) %>"> 
       <%= link_to("Pricing", pricing_path) %> 
      </li> 
      <li class=""> 
       <% if current_user %> 
        <%= link_to("Store", shop_path(current_user.shop)) if current_user.shop.present? %> 
       <% end %> 
      </li> 
      <li class="<%= 'activated' if current_page?(new_user_session_path) %>"> 
       <%= link_to("Login", new_user_session_path) unless user_signed_in? %> 
      </li> 
      <li class="<%= 'activated' if current_page?(dashboard_path) %>"> 
       <%= link_to("Dashboard", dashboard_path) if user_signed_in? %> 
      </li> 
      <li> 

      </li> 
     </ul> 
    </div> 
+0

嗨拉宾,感谢您的回应!我试过应用你的方法但我一直得到相同的错误。看起来疯狂无法识别我添加到application_helper.rb的代码 – Salman