]> git.openstreetmap.org Git - rails.git/blobdiff - config/initializers/composite_primary_keys.rb
Localisation updates from https://translatewiki.net.
[rails.git] / config / initializers / composite_primary_keys.rb
index ed4d5f2c94a788b998201e398c21b87dfdb826bd..37200c51b678d784c237234db48d05d4741db426 100644 (file)
@@ -1,47 +1,10 @@
-# Monkey patch composite_primary_keys pending the resolution of:
-# https://github.com/composite-primary-keys/composite_primary_keys/pull/170
+# Monkey patch id_was into CPK pending upstream integration
+# https://github.com/composite-primary-keys/composite_primary_keys/pull/236
 module ActiveRecord
-  module Associations
-    class HasManyAssociation
-      def delete_records(records, method)
-        if method == :destroy
-          records.each { |r| r.destroy }
-          update_counter(-records.length) unless inverse_updates_counter_cache?
-        else
-          if records == :all
-            scope = self.scope
-          else
-            # CPK
-            # keys  = records.map { |r| r[reflection.association_primary_key] }
-            # scope = scope.where(reflection.association_primary_key => keys)
-            table = Arel::Table.new(reflection.table_name)
-            and_conditions = records.map do |record|
-              eq_conditions = Array(reflection.association_primary_key).map do |name|
-                table[name].eq(record[name])
-              end
-              Arel::Nodes::And.new(eq_conditions)
-            end
-
-            condition = and_conditions.shift
-            and_conditions.each do |and_condition|
-              condition = condition.or(and_condition)
-            end
-
-            scope = self.scope.where(condition)
-          end
-
-          if method == :delete_all
-            update_counter(-scope.delete_all)
-          else
-            # CPK
-            # update_counter(-scope.update_all(reflection.foreign_key => nil))
-            updates = Array(reflection.foreign_key).inject(Hash.new) do |hash, name|
-              hash[name] = nil
-              hash
-            end
-            update_counter(-scope.update_all(updates))
-          end
-        end
+  class Base
+    module CompositeInstanceMethods
+      def id_was
+        attribute_was("id")
       end
     end
   end