class NilClass
Ruby on Rails 3.0.20
Extensions to nil which allow for more helpful error messages for people who are new to Rails.
Ruby raises NoMethodError if you invoke a method on an object that does not respond to it:
$ ruby -e nil.destroy
-e:1: undefined method `destroy' for nil:NilClass (NoMethodError)
With these extensions, if the method belongs to the public interface of the classes in NilClass::WHINERS the error message suggests which could be the actual intended class:
$ rails runner nil.destroy
...
You might have expected an instance of ActiveRecord::Base.
...
NilClass#id exists in Ruby 1.8 (though it is deprecated). Since id is a fundamental method of Active Record models NilClass#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.
Inherits from
Constants
Methods (defined here)
- # id
- # to_param
- self. add_whiner
Private methods (2)
Show private methods Implementation detail — not part of the public API.
Methods (inherited)
From Object
(26)
- # acts_like?
- # app
- # blank?
- # controller
- # create
- # create_fixtures
- # destroy
- # duplicable?
- # edit
- # helper
- # html_safe?
- # index
- # instance_variable_names
- # new
- # new_session
- # presence
- # present?
- # reload!
- # returning
- # show
- # to_param
- # to_query
- # try
- # unescape
- # update
- # with_options
From Benchmark
(1)
- self. ms