]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/reflection.rb
Add version 2.2.2 of composite_primary_keys.
[rails.git] / vendor / gems / composite_primary_keys-2.2.2 / lib / composite_primary_keys / reflection.rb
diff --git a/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/reflection.rb b/vendor/gems/composite_primary_keys-2.2.2/lib/composite_primary_keys/reflection.rb
new file mode 100644 (file)
index 0000000..309baf1
--- /dev/null
@@ -0,0 +1,19 @@
+module ActiveRecord\r
+  module Reflection\r
+    class AssociationReflection\r
+      def primary_key_name\r
+        return @primary_key_name if @primary_key_name\r
+        case\r
+          when macro == :belongs_to\r
+            @primary_key_name = options[:foreign_key] || class_name.foreign_key\r
+          when options[:as]\r
+            @primary_key_name = options[:foreign_key] || "#{options[:as]}_id"\r
+          else\r
+            @primary_key_name = options[:foreign_key] || active_record.name.foreign_key\r
+        end\r
+        @primary_key_name = @primary_key_name.to_composite_keys.to_s if @primary_key_name.is_a? Array\r
+        @primary_key_name\r
+      end\r
+    end\r
+  end\r
+end
\ No newline at end of file