2015-08-09 121 views
0

我想知道如何隱藏註冊和登錄頁面上的菜單。我得到了這個代碼。問題是,設計寶石沒有控制器,我可以隱藏菜單。那麼,做到這一點的最佳方式是什麼?如何隱藏菜單或註冊等特定頁面?

application.html.haml

- if user_signed_in? 
    %nav.navigation 
     %ul 
     %li 
      = link_to "New project", new_place_path 
     %li 
      = link_to "Profile" 
     %li 
      = link_to "Sign Out", destroy_user_session_path, method: :delete 
- else 
    %nav.navigation_welcome 
     .inner 
     %ul 
      %li 
       = link_to "Login", new_user_session_path 
      %li 
       = link_to "Sign up", new_user_registration_path 

對於註冊\登陸我用色器件。

回答

1

您可以按照描述here覆蓋設備控制器。在那裏,你可以指定一個佈局不包括導航欄

,或者如果你希望只視圖層上工作,你可以檢查controller_name

- if user_signed_in? 
    %nav.navigation 
     %ul 
     %li 
      = link_to "New project", new_place_path 
     %li 
      = link_to "Profile" 
     %li 
      = link_to "Sign Out", destroy_user_session_path, method: :delete 
- elsif include_navbar? 
    %nav.navigation_welcome 
     .inner 
     %ul 
      %li 
       = link_to "Login", new_user_session_path 
      %li 
       = link_to "Sign up", new_user_registration_path 

,然後在應用助手:

def include_navbar? 
    controller_name != 'sessions' && controller_name != 'registrations' 
end 
+0

最好的解決方案,非常感謝你! – Hola