Sha256: 79558a3494cbab4382a0bb31bdc2e10399fa93d8a8ed4f27e1c98c371dcec12b

Contents?: true

Size: 1016 Bytes

Versions: 20

Compression:

Stored size: 1016 Bytes

Contents

module ActiveRecord
  class PredicateBuilder
    class AssociationQueryValue
      def queries
        # CPK
        if associated_table.join_foreign_key.is_a?(Array)
          if ids.is_a?(ActiveRecord::Relation)
            ids.map do |id|
              associated_table.join_foreign_key.zip(id.id).to_h
            end
          else
            [associated_table.join_foreign_key.zip(ids).to_h]
          end
        else
          [associated_table.join_foreign_key => ids]
        end
      end

      def ids
        case value
        when Relation
          value.select_values.empty? ? value.select(primary_key) : value
        when Array
          value.map { |v| convert_to_id(v) }
        else
          # CPK
          # convert_to_id(value)
          if value.nil?
            nil
          elsif value.respond_to?(:composite?) && value.composite?
            value.class.primary_keys.zip(value.id)
          else
            convert_to_id(value)
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
composite_primary_keys-14.0.10 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.9 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.9 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.8 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.8 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.7 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.6 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.7 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.6 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.5 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.5 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.4 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.4 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.3 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.3 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.2 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.2 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-14.0.1 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.1 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb
composite_primary_keys-13.0.0 lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb