Method: ActiveRecord::Inheritance::ClassMethods#instantiate
- Defined in:
- lib/active_record/inheritance.rb
#instantiate(record) ⇒ Object
Finder methods must instantiate through this method to work with the single-table inheritance model that makes it possible to create objects of different types from the same table.
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/active_record/inheritance.rb', line 61 def instantiate(record) sti_class = find_sti_class(record[inheritance_column]) record_id = sti_class.primary_key && record[sti_class.primary_key] if ActiveRecord::IdentityMap.enabled? && record_id instance = use_identity_map(sti_class, record_id, record) else instance = sti_class.allocate.init_with('attributes' => record) end instance end |