instance method
instantiate
Ruby on Rails 4.0.13
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 49
def instantiate(attributes, column_types = {})
klass = discriminate_class_for_record(attributes)
column_types = klass.decorate_columns(column_types.dup)
klass.allocate.init_with('attributes' => attributes, 'column_types' => column_types)
end
Defined in activerecord/lib/active_record/persistence.rb line 49
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Persistence::ClassMethods