ぼっち演算子が便利だった
こんにちは、ぐっちと申します。
開発をしていて、gem devise のヘルパーメソッドで current_user がありますが、ログインしていない時にこのメソッドが呼ばれる事があり、当然ログインしていない為、current_user は nil で、例えば current_user.id としていると
NoMethodError
undefined method `id' for nil:NilClass
この様なエラーが出ます。
これを回避する為に、どうしようか考えて条件で
を記述して、まず current_user が nil の場合の処理を記述する必要があるのかなと思っていましたが、ちょうどスクールが提供しているミニドリルを解いている時に、「ぼっち演算子」なる物が出てきました。
ぼっち演算子
Ruby 2.3で導入された &.
演算子(safe navigation operator)の事で、
レシーバーであるオブジェクトがnilでなければそのまま結果を返し、nilの場合はnilを返すメソッド。
これが今回やりたかった事にドンピシャで
current_user&.id
と書けば、current_user が nil の場合 nil を返してくれる様になり、エラーが出なくなります。
たった一文字追加するだけで、煩わしい分岐を使わないで良くなり感動しました。
ちなみに、ぼっち演算子という命名は、&の記号が一人ぼっちで膝を抱えている人に見える所から来ている様です。
ここまで読んでくださり、ありがとうございました。
ツイッターで日々の学習をつぶやいています