nil
is blank:
nil.blank? # => true
# File lib/active_support/core_ext/object/blank.rb, line 45 def blank? true end
nil
is not duplicable:
nil.duplicable? # => false nil.dup # => TypeError: can't dup NilClass
# File lib/active_support/core_ext/object/duplicable.rb, line 34 def duplicable? false end
Returns self
.
# File lib/active_support/core_ext/object/to_param.rb, line 10 def to_param self end
Calling try
on nil
always returns
nil
. It becomes specially helpful when navigating through
associations that may return nil
.
nil.try(:name) # => nil
Without try
@person && !@person.children.blank? && @person.children.first.name
With try
@person.try(:children).try(:first).try(:name)
# File lib/active_support/core_ext/object/try.rb, line 71 def try(*args) nil end
# File lib/active_support/core_ext/object/try.rb, line 75 def try!(*args) nil end