Rails Associations, nilClass, try und Law of Demeter
-
27-10-2019 - |
Frage
Ich weiß also nie, was ich hier tun soll.
Angenommen, Sie haben eine Bestellung, die ein Mitglied hat.
Wenn Sie beispielsweise my_order.member.first_name aufrufen, bei dem das zugeordnete Mitglied gelöscht wurde, kann ein nilClass-Fehler auftreten.Ich kann my_order.member.try (: first_name) machen .. aber das scheint nur eine blöde Problemumgehung zu sein.Ich möchte nicht überall ein paar Versuche machen.
Ich habe [diesen Artikel] über Null-Objekte gelesen: http://robots.thoughtbot.com/post/8181879506/if-you-gaze-into-nil-nil-gazes-also-into-you ?
Gutes Zeug.Aber ich würde denken, dass Schienen etwas Praktisches dafür haben, da es so üblich ist. Anstatt Ihre eigene benutzerdefinierte nilClass oder so etwas zu schreiben.
Lösung
Sie können delegate verwenden.und am Ende erhalten Sie my_order.first_name