Su un'applicazione Rails 3.1, ho un metodo chiamato user_logged_in?
di Devise, che voglio utilizzare per rendere un partial in modo selettivo. Ecco il codice in layouts/application.html.erb:Rails 3, rendering parziale solo se un utente ha effettuato il login
<% if user_logged_in? %>
<%= render :partial => "home/statusbar" %>
<% end %>
Utilizza un parziale da un controller diverso. Questa è la parziale:
<div id="status_bar">
Signed in as <%= link_to current_user.name, edit_user_registration_path %>
</div>
verifica un errore in current_user.name
(metodo non definito), perché è current_user
nil
. Potrei spostare il controllo user_logged_in?
all'interno del parziale, ma penso che sarebbe marginalmente più efficiente se fosse nella vista.
Potrebbe dirmi quali sono le migliori pratiche o come posso superare l'errore del metodo non definito? È normale che Rails controlli il codice del modello anche se si trova in un blocco if
che non riesce?
Sì, lo fa. Funziona anche se uso user_signed_in ?. Metodo totalmente sbagliato. Scusa e grazie! – joseph