Sto riscontrando problemi con un if, elsif, else statment in html.erb. Ho visto molte domande riguardo le dichiarazioni if / else in erb ma nessuna che includesse elsif quindi ho pensato di chiedere aiuto.if, elsif, else statements html erb beginner
Ecco il mio html.erb:
<% if logged_in? %>
<ul class = "nav navbar-nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Account <b class="caret"></b>
</a>
<ul class="dropdown-menu pull-right">
<li><%= link_to "Profile", current_user %></li>
<li><%= link_to "Settings", edit_user_path(current_user) %></li>
<li class="divider"></li>
<li>
<%= link_to "Log out", logout_path, method: "delete" %>
</li>
</ul>
</li>
</ul>
<% elsif has_booth?(current_user.id) %>
<ul>
<li>TEST</li>
</ul>
<% else %>
<ul class="nav navbar-nav pull-right">
<li><%= link_to "Sign Up", signup_path %></li>
<li><%= link_to "Log in", login_path %></li>
</ul>
<% end %>
Ecco il mio metodo has_booths:
module BoothsHelper
def has_booth?(user_id)
Booth.exists?(user_id: user_id)
end
end
Vorrei l'intestazione nav di avere tre diversi tipi di contenuti per utenti diversi. L'utente che ha effettuato l'accesso, l'utente che ha effettuato l'accesso che ha creato una cabina e l'utente disconnesso. Finora, posso solo fare 2 lavori su tre. Ho provato a cambiare
<% elsif has_booth?(current_user.id) %>
a
<% elsif logged_in? && has_booth?(current_user.id) %>
e che non ha funzionato neanche. Sto scrivendo la mia dichiarazione correttamente? Ogni pensiero è apprezzato. Grazie.
Grazie per la spiegazione. Ho implementato la prima soluzione e ha funzionato. Per quanto riguarda il pulitore, il primo blocco di codice sarebbe se entrambe le istanze fossero vere, la seconda se fosse solo loggato? erano veri e il terzo blocco per il resto? Grazie ancora. – Kelly
Prego, e questo è vero con il modo in cui hai delineato l'approccio più pulito. – RichardAE