Sha256: d25e2343a5aa372c52a342558b8eba0cd03f645fdbd43573b1aef76b1c2be639

Contents?: true

Size: 754 Bytes

Versions: 3

Compression:

Stored size: 754 Bytes

Contents

module CompositePrimaryKeys
  module ActiveRecord
    module Relation
      module InstanceMethods
        def ids_predicate(id)
          predicate = nil
          self.primary_keys.zip(id).each do |key, value|
            eq = table[key].eq(value)
            predicate = predicate ? predicate.and(eq) : eq
          end
          predicate
        end

        def delete(id_or_array)
          # CPK
          # where(@klass.primary_key => id_or_array).delete_all
          where(ids_predicate(id_or_array)).delete_all
        end

        def destroy(id)
          # CPK
          #if id.is_a?(Array)
          #  id.map { |one_id| destroy(one_id) }
          #else
            find(id).destroy
          #end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
composite_primary_keys-3.0.3 lib/composite_primary_keys/relation.rb
composite_primary_keys-3.0.0.b3 lib/composite_primary_keys/relation.rb
composite_primary_keys-3.0.0.b2 lib/composite_primary_keys/relation.rb