instance method
instantiate
Ruby on Rails 4.2.9
Since v4.0.13Signature
instantiate(attributes, column_types = {})
Given an attributes hash, instantiate returns a new instance of the appropriate class. Accepts only keys as strings.
For example, Post.all may return Comments, Messages, and Emails by storing the record’s subclass in a type attribute. By calling instantiate instead of new, finder methods ensure they get new instances of the appropriate class for each record.
See +ActiveRecord::Inheritance#discriminate_class_for_record+ to see how this “single-table” inheritance mapping is implemented.
Parameters
-
attributesreq -
column_typesopt = {}
Source
# File activerecord/lib/active_record/persistence.rb, line 66
def instantiate(attributes, column_types = {})
klass = discriminate_class_for_record(attributes)
attributes = klass.attributes_builder.build_from_database(attributes, column_types)
klass.allocate.init_with('attributes' => attributes, 'new_record' => false)
end
Defined in activerecord/lib/active_record/persistence.rb line 66
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Persistence::ClassMethods