Module: CompositePrimaryKeys::ActiveRecord::Relation::InstanceMethods

Defined in:
lib/composite_primary_keys/relation.rb

Instance Method Summary collapse

Instance Method Details

#delete(id_or_array) ⇒ Object



14
15
16
17
18
# File 'lib/composite_primary_keys/relation.rb', line 14

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

#destroy(id) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/composite_primary_keys/relation.rb', line 20

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

#ids_predicate(id) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/composite_primary_keys/relation.rb', line 5

def ids_predicate(id)
  predicate = nil
  self.primary_key.zip(id).each do |key, value|
    eq = key.eq(value)
    predicate = predicate ? predicate.and(eq) : eq
  end
  predicate
end