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?