Yesterday I blogged about implicitly testing for nil
, relying on Ruby's definition of truth, rather than the explicit Object#nil?
to keep code terse.
Here's another example of keeping code terse when handling nil
values with Object#try
. This is particularly helpful when working with ERB:
# in ERB template @order.user.name if order.userThe simplified version:
# in ERB template @order.user.try(:name)
Something I didn't know previously to writing this post, is Object#try
supports arguments similar to Object#send
.
Object#try
was added to ActiveSupport in Rails 2.3.2.