2015-08-11 15 views

risposta

14

È possibile utilizzare l'istruzione return qui. In sostanza, non è necessario che il metodo continui a if, a condizione che tali condizioni siano soddisfatte, quindi è possibile eseguire il salvataggio anticipatamente.

def require_admin 
    return if current_user && current_user.role == 'admin' 

    flash[:error] = "You are not an admin" 
    redirect_to root_path 
end 
+2

Per espandere la risposta di Justin, in realtà creerei un metodo nel modello utente per il ruolo admin. In questo modo puoi chiamare "current_user.admin?" Per il controllo. Solo un po 'più pulito. Oppure potresti persino scrivere un metodo per non admin e cambiare la tua clausola di guardia in "return a current_user.not_admin?" –

Problemi correlati