RuboCopからUse a guard clause instead of wrapping the code inside a conditional expression.と怒られたぞ

Railsチュートリアルをやっている時にRubocopから* RuboCop: Style/GuardClause: Use a guard clause instead of wrapping the code inside a conditional expression. [Style/GuardClause]と怒られました。

怒られたコードはこれ。

# ログイン済みユーザーかどうか確認
def logged_in_user
  unless logged_in?
    flash[:danger] = "Please log in."
    redirect_to login_url
  end
end





条件のネストが深すぎ、guard clauseを使えとのこと。

で、これをリファクタリングするとこうなる。

# ログイン済みユーザーかどうか確認
def logged_in_user
  return if logged_in?

  flash[:danger] = 'Please log in.'
  redirect_to login_url
end

Rubocop入れて初めてRailsチュートリアルを復習している最中ですが、わりと怒られる。なぜだ。





See Also