30代プログラム初心者がWEBエンジニアになる

30代プログラム初心者が、WEBエンジニアになるまでの奮闘を書いていきます。

ぼっち演算子の使用について

こんにちは、ぐっちと申します。

前回便利なぼっち演算子について書きましたが、使用していると記述に注意すべき所があり、それについて書きたいと思います。

 

もう一度書きますがぼっち演算子とは

ぼっち演算子

 Ruby 2.3で導入された  &. 演算子safe navigation operator)の事で、

レシーバーであるオブジェクトがnilでなければそのまま結果を返し、nilの場合はnilを返すメソッド。

前回は

current_user&.id

 という使い方をしていましたが、これが

current_user.where.not(hoge: nil).count

というコードだった場合

 

current_user&.where.not(hoge: nil).count

 これで良いと思っていましたが、 NoMethodErrorが出て

???という感じになっていましたが、調べてみるとレシーバー全てに&.を付けるという事でした。 

 

current_user&.where&.not(hoge: nil)&.count

これで問題なく行けました。

 

初めて使用するものは良く調べて、仕様を把握しておく事が大事だと学びました。

 

ここまで読んでくださり、ありがとうございました。

 ツイッターで日々の学習をつぶやいています

@Yamaguc45844169