Eventuali duplicati:
Ruby: Nils in an IF statement
Is there a clean way to avoid calling a method on nil in a nested params hash?Rubino - Accesso hash multidimensionale ed evitare l'accesso nil oggetto
Diciamo che provo ad accedere a un hash come questo:
my_hash['key1']['key2']['key3']
Questo è bello se key1, ke y2 e key3 esistono nell'hash (es), ma cosa succede se, ad esempio, key1 non esiste?
Quindi vorrei ottenere NoMethodError: undefined method [] for nil:NilClass
. E a nessuno piace.
Finora mi occupo di questo facendo un simile condizionale:
if my_hash['key1'] && my_hash['key1']['key2']
...
È questo il caso, c'è qualche altro modo Rubiest di farlo?
Scusa comunità. Ho provato a cercarlo e non sono riuscito a trovarlo. Chiudi se appropriato. – Nobita
La risposta accettata cita ogni metodo possibile eccetto quello corretto per Ruby 2.3+: http://ruby-doc.org/core-2.3.1/Hash.html#method-i-dig –