はじめに
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