I agree with @jamonholmgren. @danielberkompas 's solution seems like a good way to concisely read data.
Of course, the ruby try()
construct can sometimes be considered a code smell, as we’re actually breaking the Law of Demeter here, and a better solution (But often not worth the hassle/extra abstraction) would be to create a proper null-object.
But… I’m getting sidetracked.
I think that Maybe.maybe(some.field.lookup)
is a very reasonable way to solve this problem. When using it, a developer explicitly acknowledges that the answer might be nil at any depth of the field lookup.