RuboCop::Cop::Rails::PresenceというRubocupの指摘

6658 ワード

Rubocupでリファクタリングをしていたところ、モデルのメソッドで次の指摘を受けました。

models/sample.rb
C: [Correctable] Rails/Presence: 
Use [別テーブルのidを格納した配列を弄る処理].presence || [] 
instead of [別テーブルのidを格納した配列を弄る処理].blank? ? [] : [別テーブルのidを格納した配列を弄る処理]
変数 = [別テーブルのidを格納した配列を弄る処理] ? [] : [別テーブルのidを格納した配列を弄る処理]

元の記述は配列を処理した結果、空配列であれば空配列を、そうでなければ処理した結果の配列を返すという単純なものですが、同じ記述を2回繰り返す点でDRY原則に沿った書き方ではありませんでした。

今回の指摘で簡潔に書けることがわかりましたが、これまで見かけない記述でしたのでまとめておきます。

短絡評価について