class method self.instantiate

Ruby on Rails 3.1.12

Since v2.2.3 Last seen in v3.1.12

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12

Signature

self.instantiate(record)

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.

Parameters

record req
Source
# File activerecord/lib/active_record/base.rb, line 952
      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

Defined in activerecord/lib/active_record/base.rb line 952 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Base

Type at least 2 characters to search.

↑↓ navigate · open · esc close