14
Существует следующий код:пункт Guard вместо оберточной код внутри условного выражения Rails
# 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
Я использую Rubocop проверить мой код, если он соответствует рекомендациям Руби. Я получил следующее сообщение об ошибке:
Use a guard clause instead of wrapping the code inside a conditional expression.
unless @user && @user.authenticate(params[:user][:password])
Таким образом, я не понимаю, как я могу сделать этот код лучше, используя пункт охраны. Заранее спасибо!
Не хорошо. Если пользователь && user.authenticate, мне нужно визуализировать представление по умолчанию – malcoauri
, что сделал osman выше, эквивалентен вашему коду. он будет по-прежнему отображать шаблон создания, когда пользователь будет успешно аутентифицироваться. – jvnill