このビルド ケースの Ruby 条件を記述する簡単な方法を考え出すのに苦労しています。私は3つのデバイスユーザーモデルを持っており、どのユーザーがログインしているかに基づいて、ナグバーに正しいユーザークラスを表示したいだけです。アイデアは、デバイス user_signed_in? を使用する if else ステートメントの基本的に 3 つのブロックを持つことです。以下に示すヘルパー:
<nav class="top-bar">
<section class="top-bar-section">
<ul class="left">
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Admin Login Page", admin_path %></li>
<li><%= link_to "Company Login Page", company_path %></li>
</ul>
<ul class="right">
<% if user_signed_in? %>
<li><%= link_to "Edit Profile", edit_user_registration_path %></li>
<li><%= link_to "Logout", destroy_user_session_path, method: :delete %></li>
<% else %>
<li><%= link_to "Login", new_user_session_path %></li>
<% if admin_signed_in? %>
<li><%= link_to "Edit Profile", edit_admin_registration_path %></li>
<li><%= link_to "Logout", destroy_admin_session_path, method: :delete %></li>
<% else %>
<li><%= link_to "Login", new_admin_session_path %></li>
<% if company_user_signed_in? %>
<li><%= link_to "Edit Profile", edit_company_user_registration_path %></li>
<li><%= link_to "Logout", destroy_company_user_session_path, method: :delete %></li>
<% else %>
<li><%= link_to "Login", new_company_user_session_path %></li>
<% end %>
</ul>
問題は、実際にはこのように機能しないことです。そのため、問題は 2 つあります。まず、この条件付き構文を単純化する方法は? 第二に、それを機能させる方法は?