Class: ActiveRecord::Relation
- Inherits:
-
Object
- Object
- ActiveRecord::Relation
- Defined in:
- lib/composite_primary_keys/relation.rb
Instance Method Summary collapse
- #add_cpk_support ⇒ Object
-
#initialize(klass, table) ⇒ Relation
constructor
A new instance of Relation.
- #initialize_copy(other) ⇒ Object
- #initialize_copy_cpk ⇒ Object
- #initialize_cpk ⇒ Object
Constructor Details
#initialize(klass, table) ⇒ Relation
Returns a new instance of Relation.
48 49 50 51 |
# File 'lib/composite_primary_keys/relation.rb', line 48 def initialize(klass, table) initialize_cpk(klass, table) add_cpk_support if klass.composite? end |
Instance Method Details
#add_cpk_support ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/composite_primary_keys/relation.rb', line 3 def add_cpk_support class << self include CompositePrimaryKeys::ActiveRecord::Calculations include CompositePrimaryKeys::ActiveRecord::FinderMethods include CompositePrimaryKeys::ActiveRecord::QueryMethods def delete(id_or_array) ::ActiveRecord::IdentityMap.remove_by_id(self.symbolized_base_class, id_or_array) if ::ActiveRecord::IdentityMap.enabled? # CPK # where(primary_key => id_or_array).delete_all id_or_array = if id_or_array.kind_of?(CompositePrimaryKeys::CompositeKeys) [id_or_array] else Array(id_or_array) end id_or_array.each do |id| where(cpk_id_predicate(table, self.primary_key, id)).delete_all end end def destroy(id_or_array) # CPK #if id.is_a?(Array) # id.map { |one_id| destroy(one_id) } #else # find(id).destroy #end id_or_array = if id_or_array.kind_of?(CompositePrimaryKeys::CompositeKeys) [id_or_array] else Array(id_or_array) end id_or_array.each do |id| where(cpk_id_predicate(table, self.primary_key, id)).each do |record| record.destroy end end end end end |
#initialize_copy(other) ⇒ Object
54 55 56 57 |
# File 'lib/composite_primary_keys/relation.rb', line 54 def initialize_copy(other) initialize_copy_cpk(other) add_cpk_support if klass.composite? end |
#initialize_copy_cpk ⇒ Object
53 |
# File 'lib/composite_primary_keys/relation.rb', line 53 alias :initialize_copy_cpk :initialize_copy |
#initialize_cpk ⇒ Object
47 |
# File 'lib/composite_primary_keys/relation.rb', line 47 alias :initialize_cpk :initialize |