aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute_methods
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-07-20 02:23:00 -0300
committerGitHub <noreply@github.com>2016-07-20 02:23:00 -0300
commitf980dee24eb500e2a8a6e25b2fd13dbe2ce5b62d (patch)
tree7e70d9d721cf40bc52aa7f100ee8ad05c65f2db9 /activerecord/lib/active_record/attribute_methods
parentb8d7bcf93ec21688ad2c7ea3d2d9b591de1b04d1 (diff)
parentcf09d5bd63a6c886d0417163de2e966669c52809 (diff)
downloadrails-f980dee24eb500e2a8a6e25b2fd13dbe2ce5b62d.tar.gz
rails-f980dee24eb500e2a8a6e25b2fd13dbe2ce5b62d.tar.bz2
rails-f980dee24eb500e2a8a6e25b2fd13dbe2ce5b62d.zip
Merge pull request #25578 from kamipo/move_warning_about_composite_primary_key_to_attribute_methods_primary_key
Move the warning about composite primary key to `AttributeMethods::PrimaryKey`
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods')
-rw-r--r--activerecord/lib/active_record/attribute_methods/primary_key.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/primary_key.rb b/activerecord/lib/active_record/attribute_methods/primary_key.rb
index 0d5cb8b37c..d28edfb003 100644
--- a/activerecord/lib/active_record/attribute_methods/primary_key.rb
+++ b/activerecord/lib/active_record/attribute_methods/primary_key.rb
@@ -95,7 +95,8 @@ module ActiveRecord
base_name.foreign_key
else
if ActiveRecord::Base != self && table_exists?
- connection.schema_cache.primary_keys(table_name)
+ pk = connection.schema_cache.primary_keys(table_name)
+ suppress_composite_primary_key(pk)
else
'id'
end
@@ -122,6 +123,18 @@ module ActiveRecord
@quoted_primary_key = nil
@attributes_builder = nil
end
+
+ private
+
+ def suppress_composite_primary_key(pk)
+ return pk unless pk.is_a?(Array)
+
+ warn <<-WARNING.strip_heredoc
+ WARNING: Active Record does not support composite primary key.
+
+ #{table_name} has composite primary key. Composite primary key is ignored.
+ WARNING
+ end
end
end
end