Ruby

ruby on rails hashの判定文

More than 1 year has passed since last update.

1.エラーその1

hoge.ruby
hoge.merge!(hash[i]) if hash.present?

→この方法だとhash[i]がnilっている時にエラーになる。

no implicit conversion of nil into

2.エラーその2

hoge.ruby
hoge.merge!(hash[i]) if hash[i].present?

→この記述だと一見いけそうだが、やはりエラーになる

undefined method `[]' for nil:NilClass

3.良い書き方

hoge.ruby
hoge.merge!(hash[i]) if hash.try(:[],i).present?

→これでtryをかけるのでhash[i]が無い時は実行されずエラーにならない