nilじゃない場合だけループを実行する。
objects.each do |object| p object.name end
ループ処理を書く際、上のように単純に書くとobjectsがnilの場合に例外が出る。
ただ問題を回避するだけなら生真面目にif文で分岐するだけで良い。
unless objects.blank? objects.each do |object| p object.name end end
だがしかし野暮ったい。もっとスマートに書く方法なかったっけ?
と思って調べてみるが、見つからない。
rubyのイディオムを網羅的に調べられるサイトってどっかにないのかな。
とにかく見つからないので自分でちょっと試してみたところ、以下のコードで目的の処理が出来た。
(objects || []).each do |object| p object.name end
この書き方はどうなんだろう?
割合スマートだと思うが、もっと良い書き方がどっかにありそうな気もする。