This post you will learn about the most interesting addition to Ruby 2.3.0, the Safe Navigation Operator(&.).
Scenario
Lets say we have a cart object, which belongs to an owner and we want to know the email of the owner.
Most common solution we find Devs doing in this situation is:
1
cart && cart.owner && cart.owner.email
which is checking if cart is present, than check cart.owner and if it present than return cart.owner.email as a result, which is tidious to write and doesn’t looks good, also imagine, if there are multi level associations to work on.
Now another solution is:
1
cart.try(:owner).try(:email)
bit shorter and cleaner than above solution but we can improve this by using &. operator:
1
cart&.owner&.email
It will return the email address of owner, if cart and owner present, otherwise, return nil.