14
C'è il seguente codice:Guardia clausola invece di avvolgere il codice all'interno di un'espressione condizionale Rotaie
# API controller for authentication
class Api::V1::SessionsController < Api::V1::ApplicationController
skip_before_action :authorize
def create
@user = User.find_by(email: params[:user][:email])
unless @user && @user.authenticate(params[:user][:password])
@error_message = 'Invalid username or password'
render 'shared/error', status: :unauthorized
end
end
end
Io uso Rubocop per controllare il mio codice se corrisponde alle linee guida Ruby. Ho ricevuto il seguente errore:
Use a guard clause instead of wrapping the code inside a conditional expression.
unless @user && @user.authenticate(params[:user][:password])
Quindi, non capisco come posso rendere questo codice migliore utilizzando la clausola di guardia. Grazie in anticipo!
Non va bene. Se user && user.authenticate ho bisogno di renderizzare la vista di default – malcoauri
ciò che osman ha fatto è equivalente al tuo codice. renderà ancora il modello di creazione quando l'utente si autentica correttamente. – jvnill