Extensions to nil
which allow for more helpful error messages
for people who are new to Rails.
#id exists in Ruby 1.8 (though it
is deprecated). Since id
is a fundamental method of Active
Record models #id is redefined as
well to raise a RuntimeError and warn the user. She probably wanted a model
database identifier and the 4 returned by the original method could result
in obscure bugs.
The flag config.whiny_nils
determines whether this feature is
enabled. By default it is on in development and test modes, and it is off
in production mode.
- A
- B
- D
- E
- I
- T
nil
is blank:
nil.blank? # => true
nil
is not duplicable:
nil.duplicable? # => false nil.dup # => TypeError: can't dup NilClass
Raises a RuntimeError when you attempt to call id
on
nil
.
Calling try
on nil
always returns
nil
. It becomes specially helpful when navigating through
associations that may return nil
.
Examples
nil.try(:name) # => nil
Without try
@person && [email protected]? && @person.children.first.name
With try
@person.try(:children).try(:first).try(:name)