Ruby - Greifen Sie auf mehrdimensionalen Hash zu und vermeiden Sie den Zugriff auf kein Objekt [duplizieren]

Mögliche Duplikate:
Ruby: Nils in einer IF-Anweisung
Gibt es eine saubere Möglichkeit, um zu vermeiden, dass eine Methode auf nil in einem verschachtelten params-Hash aufgerufen wird?

Angenommen, ich versuche, auf einen Hash wie diesen zuzugreifen:

<code>my_hash['key1']['key2']['key3']
</code>

Dies ist schön, wenn key1, key2 und key3 in den Hashes vorhanden sind, aber was ist, wenn beispielsweise key1 nicht vorhanden ist?

Dann würde ich bekommenNoMethodError: undefined method [] for nil:NilClass. Und niemand mag das.

Bisher beschäftige ich mich damit, indem ich eine Bedingung mache wie:

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

Ist das angemessen, gibt es eine andere Möglichkeit, dies zu tun?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage