如何隐藏特定页面上的菜单,例如注册和登录?

How can I hide the menu o specific pages like sign up and log in?

我想知道如何隐藏注册和登录页面上的菜单。我得到这个 code.The 问题是 Devise gem 没有可以隐藏菜单的控制器。那么,最好的方法是什么?

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

符号up\login我用设计

您可以按照 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