Sha256: ee4b7de38054f9484f28119bab5d4458027ddb38090abf1439898b2dba922ba1
Contents?: true
Size: 971 Bytes
Versions: 5
Compression:
Stored size: 971 Bytes
Contents
# frozen_string_literal: true module Torque module PostgreSQL module Associations module Preloader module LoaderQuery def foreign_column @foreign_column ||= scope.columns_hash[association_key_name.to_s] end def load_records_for_keys(keys, &block) condition = query_condition_for(keys) scope.where(condition).load(&block) end def query_condition_for(keys) if connected_through_array? value = scope.cast_for_condition(foreign_column, keys.to_a) scope.table[association_key_name].overlaps(value) else { association_key_name => keys } end end def connected_through_array? foreign_column.array? end end ::ActiveRecord::Associations::Preloader::Association::LoaderQuery .prepend(LoaderQuery) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems