Sha256: af3e8e8172b68faa17726262a3446f5608fa9ffee59430b001ef6705eeb8f5bc

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

module ActiveRecord
  module Core
    def initialize_dup(other) # :nodoc:
      @attributes = @attributes.deep_dup
      # CPK
      #@attributes.reset(@primary_key)
      Array(self.class.primary_key).each {|key| @attributes.reset(key)}

      _run_initialize_callbacks

      @new_record               = true
      @destroyed                = false
      @_start_transaction_state = nil
      @transaction_state        = nil

      super
    end

    module ClassMethods
      def find(*ids) # :nodoc:
        # We don't have cache keys for this stuff yet
        return super unless ids.length == 1
        return super if block_given? ||
            primary_key.nil? ||
            scope_attributes? ||
            columns_hash.key?(inheritance_column) && !base_class?

        # CPK
        return super if self.composite?

        id = ids.first

        return super if StatementCache.unsupported_value?(id)

        key = primary_key

        statement = cached_find_by_statement(key) { |params|
          where(key => params.bind).limit(1)
        }

        record = statement.execute([id], connection)&.first
        unless record
          raise ::ActiveRecord::RecordNotFound.new("Couldn't find #{name} with '#{key}'=#{id}", name, key, id)
        end
        record
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
composite_primary_keys-12.0.9 lib/composite_primary_keys/core.rb
composite_primary_keys-12.0.8 lib/composite_primary_keys/core.rb
composite_primary_keys-12.0.6 lib/composite_primary_keys/core.rb
composite_primary_keys-12.0.5 lib/composite_primary_keys/core.rb
composite_primary_keys-12.0.4 lib/composite_primary_keys/core.rb