Ruby -Доступ к многомерному хэшу и избегание доступа к объекту nil [дубликат]

Возможный дубликат:
Ruby:Нильс в операторе IF
Есть ли чистый способ избежать вызова метода для nil во вложенном хеше params?

Допустим, я пытаюсь получить доступ к такому хэшу:

my_hash['key1']['key2']['key3']

Хорошо, если в хеше(es)существуют ключи1, ключ2 и ключ3, но что, если, например, ключ1 не существует?

Тогда я бы получил NoMethodError: undefined method [] for nil:NilClass. И это никому не нравится.

До сих пор я имел дело с этим, выполняя условное вроде:

if my_hash['key1'] && my_hash['key1']['key2']...

Подходит ли это, есть ли какой-либо другой способ Rubiest сделать это?

87
задан Community 23 May 2017 в 12:34
поделиться