如何隐藏或删除菜单项?
How can I hide or remove a menu item?
我有以下创建导航项列表(菜单)的代码片段:
<ul class="nav">
<li><%= link_to "Log in", login_path %></li>
<li><%= link_to "Help", help_path %></li>
<% if logged_in? %>
<li><%= link_to "Home", root_path %></li>
</ul>
未登录时,菜单显示为:
Log in
Help
当我登录时,它显示为
Log in
Help
Home
登录后,我想:
- 隐藏或删除
log in
菜单项和
- 重新排列剩余的菜单项,使
Home
排在第一位,Help
排在第二位。
你可以做一个 if else 语句来帮助你。
<ul class="nav">
<% if logged_in? %>
<li><%= link_to "Home", root_path %></li>
<% else %>
<li><%= link_to "Log in", login_path %></li>
<li><%= link_to "Help", help_path %></li>
<% end %>
</ul>
你只要把它们安排好,用好条件就可以了
<ul class="nav">
<% if logged_in? %>
<li><%= link_to "Home", root_path %></li>
<% else %>
<li><%= link_to "Log in", login_path %></li>
<% end %>
<li><%= link_to "Help", help_path %></li>
</ul>
解释:
第一个 if-else 检查是否有登录用户,如果登录,将 return <li>
Home 或 Log在 如果没有登录
无论用户是否登录,最后一个 <li>
将始终显示
以上答案是正确的,但是它的旧方法,你可以在没有 if else 条件的情况下进行。 rails 提供内置 link_to_unless 助手。
请检查以下代码。
您可以根据自己的需要安排菜单。
未测试
<ul class="nav">
<li><%= link_to_unless(logged_in?, 'Log in', login_path){} %></li>
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Help", help_path %></li>
</ul>
如果它不起作用请告诉我
我有以下创建导航项列表(菜单)的代码片段:
<ul class="nav">
<li><%= link_to "Log in", login_path %></li>
<li><%= link_to "Help", help_path %></li>
<% if logged_in? %>
<li><%= link_to "Home", root_path %></li>
</ul>
未登录时,菜单显示为:
Log in
Help
当我登录时,它显示为
Log in
Help
Home
登录后,我想:
- 隐藏或删除
log in
菜单项和 - 重新排列剩余的菜单项,使
Home
排在第一位,Help
排在第二位。
你可以做一个 if else 语句来帮助你。
<ul class="nav">
<% if logged_in? %>
<li><%= link_to "Home", root_path %></li>
<% else %>
<li><%= link_to "Log in", login_path %></li>
<li><%= link_to "Help", help_path %></li>
<% end %>
</ul>
你只要把它们安排好,用好条件就可以了
<ul class="nav">
<% if logged_in? %>
<li><%= link_to "Home", root_path %></li>
<% else %>
<li><%= link_to "Log in", login_path %></li>
<% end %>
<li><%= link_to "Help", help_path %></li>
</ul>
解释:
第一个 if-else 检查是否有登录用户,如果登录,将 return <li>
Home 或 Log在 如果没有登录
无论用户是否登录,最后一个 <li>
将始终显示
以上答案是正确的,但是它的旧方法,你可以在没有 if else 条件的情况下进行。 rails 提供内置 link_to_unless 助手。 请检查以下代码。 您可以根据自己的需要安排菜单。
未测试
<ul class="nav">
<li><%= link_to_unless(logged_in?, 'Log in', login_path){} %></li>
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Help", help_path %></li>
</ul>
如果它不起作用请告诉我