class NilClass

def try(*args)

@person.try(:children).try(:first).try(:name)
With +try+

@person && !@person.children.blank? && @person.children.first.name
Without +try+

nil.try(:name) # => nil

It becomes specially helpful when navigating through associations that may return +nil+.
Calling +try+ on +nil+ always returns +nil+.
def try(*args)
  nil
end