ruby-on-rails – 在除主页之外的所有页面上显示导航栏
发布时间:2020-12-17 02:26:01 所属栏目:百科 来源:网络整理
导读:我想展示两个不同的导航栏.当您登录时,将在除主页之外的所有页面上显示一个.而另一个导航栏将显示在我的登录页面上. 我想我可能需要写一个if语句. If (current user is not logged in) or maybe (current user is viewing home page) donavSecond navbar/nav
我想展示两个不同的导航栏.当您登录时,将在除主页之外的所有页面上显示一个.而另一个导航栏将显示在我的登录页面上.
我想我可能需要写一个if语句. If (current user is not logged in) or maybe (current user is viewing home page) do <nav>Second navbar</nav> else <nav>First navbar</nav> end 我对rails很新,所以我错了. (是的,我知道不是如何在Ruby中正确编写if语句) 主页位于: 家用/ index.html.erb 解决方法
我通常做以下设置:
>创建部分共享/ _nav_menu.html.erb 里面部分我把逻辑像: <% if current_user %> // nav bar for logged in user <% else %> // nav bar for non logged in users <% end %> 然后在application.html.erb文件中我像这样呈现部分: <%= render :partial => 'shared/_nav_menu' if show_menu? %> 在我的application_controller里面,我把这样的逻辑: def show_menu? true end helper method: show_menu? 如果我不想显示static_pages的菜单,那么在static_pages_controller中我覆盖了show_menu?返回false的方法. class StaticPagesController < ApplicationController def show_menu? false end helper_method: show_menu? end 您不必完全使用此设置,但我喜欢此设置,因为我的导航菜单逻辑部分保持独立.导航菜单所需的所有逻辑都存在于此文件中. 这种方法不会使我的application.html.erb文件膨胀很多if..else. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |