国境の南

Ruby, Railsメイン

ネストの深いハッシュにtryしたい

2.2.0 (main):0 > params
=> {
  :a => {
    :id => [
      [0] 1,
      [1] 2
    ]
  }
}

2.2.0 (main):0 > params2
=> {
  :b => {
    :id => [
      [0] 1,
      [1] 2
    ]
  }
}

2.2.0 (main):0 > params2[:a][:id]
NoMethodError: undefined method `[]' for nil:NilClass

こんな感じでtryできる。 一見不思議だけど " [ ] "はメソッドで、引数は" [ ] "の中に取るという動きに従ってるだけ。

2.2.0 (main):0 > params3[:a].try(:[], :id)
=> nil