Ruby - Accede al hash multidimensional y evita el acceso al objeto nulo [duplicar]
Posible duplicado:
Ruby: Nils en una declaración IF
¿Hay una forma limpia de evitar llamar a un método en nil en un hash de parámetros anidados?
Digamos que trato de acceder a un hash como este:
<code>my_hash['key1']['key2']['key3'] </code>
Esto es bueno si key1, key2 y key3 existen en los hash (es), pero ¿qué pasa si, por ejemplo, key1 no existe?
Entonces obtendríaNoMethodError: undefined method [] for nil:NilClass
. Y a nadie le gusta eso.
Hasta ahora me ocupo de esto haciendo un condicional como:
if my_hash['key1'] && my_hash['key1']['key2']
...
¿Es esto apropiado? ¿Hay alguna otra forma más Rubiest de hacerlo?