紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【Rubocop】Use the return of the conditional for variable assignment and comparison.エラーの対処法

f:id:yokoyantech:20190308164352p:plain

はじめに

Rubocopで見慣れない指摘を受けたのでメモ。

バージョン

  • rubocop
    • 0.49.1

エラー内容

変数の比較と代入は、条件式の戻り値を使うべし。

Use the return of the conditional for variable assignment and comparison.

ダメなコード例

私はJavaで育ったので、つい、以下のようなコードを書いてしまう。

if @user.type == Settings.user.user_type.standard
  msg = t('message.hogehoge')
else
  msg = t('message.fugafuga')
end

修正例

rubyのif文は戻り値を返すので、その値を使って代入をする。 確かにコードがスッキリする。

msg = if @user.type == Settings.user.user_type.standard
        t('message.hogehoge')
      else
        t('message.fugafuga')
      end