Method: ActiveModel::AttributeMethods#method_missing
- Defined in:
- lib/active_model/attribute_methods.rb
#method_missing(method, *args, &block) ⇒ Object
Allows access to the object attributes, which are held in the @attributes hash, as though they were first-class methods. So a Person class with a name attribute can use Person#name and Person#name= and never directly use the attributes hash – except for multiple assigns with ActiveRecord#attributes=. A Milestone class can also ask Milestone#completed? to test that the completed attribute is not nil or 0.
It’s also possible to instantiate related objects, so a Client class belonging to the clients table with a master_id foreign key can instantiate master through Client#master.
402 403 404 405 406 407 408 409 |
# File 'lib/active_model/attribute_methods.rb', line 402 def method_missing(method, *args, &block) if respond_to_without_attributes?(method, true) super else match = match_attribute_method?(method.to_s) match ? attribute_missing(match, *args, &block) : super end end |