Sha256: 880148874ba19027f451430e68dee3672c6ee62b24517bfdba94bb8d11503071
Contents?: true
Size: 966 Bytes
Versions: 2
Compression:
Stored size: 966 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] 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
torque-postgresql-3.0.1 | lib/torque/postgresql/associations/preloader/loader_query.rb |
torque-postgresql-3.0.0 | lib/torque/postgresql/associations/preloader/loader_query.rb |