Ruby Weekly経由。Array()を使ったnilガードを紹介しているGuarding with arraysという記事がナイスでした。
Array()を使ったnilガード
Rubyでのコーディングは常にnilとの戦いなのであります。
例えばparams[:pictures]
に配列が入ってくると期待して、こんなコードを書くと、
params[:pictures].each do |picture_id| # なんか処理がある end
params[:pictures]
がnilのときにエラーになりますよね。なのでこんな風に書いたりするんですが、ちょいダサい。
(params[:pictures].presence || []).each do |picture_id| # なんか処理がある end
で、Guarding with arraysで紹介されている方法が、こんな書き方。
Array(params[:pictures]).each do |picture_id| # なんか処理がある end
Array()の以下のような性質を活かした方法で、見た目にもArray感があって良い感じです。
Array([1,2,3]) # => [1,2,3] Array(nil) # => []