aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2011-11-27 13:05:19 -0800
committerJon Leighton <j@jonathanleighton.com>2011-11-27 13:05:19 -0800
commitb00cf122e2cb9bb326b2ec5ba4c35c1558362109 (patch)
tree80cf0a141eba7daff8d2d0950717a44197ef9500 /activerecord/lib
parentaf3aacaa47922e1c587ce626bd45fd9f452fe03f (diff)
parent0f5104d7208b706e9a0353d3d4ccb20683e81bde (diff)
downloadrails-b00cf122e2cb9bb326b2ec5ba4c35c1558362109.tar.gz
rails-b00cf122e2cb9bb326b2ec5ba4c35c1558362109.tar.bz2
rails-b00cf122e2cb9bb326b2ec5ba4c35c1558362109.zip
Merge pull request #3748 from samsonasu/has_many_custom_pk_new_record
New records should load has_many relationships with custom primary keys
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/associations/collection_association.rb2
-rw-r--r--activerecord/lib/active_record/associations/has_many_association.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/collection_association.rb b/activerecord/lib/active_record/associations/collection_association.rb
index 362f1053cd..af37909c89 100644
--- a/activerecord/lib/active_record/associations/collection_association.rb
+++ b/activerecord/lib/active_record/associations/collection_association.rb
@@ -235,7 +235,7 @@ module ActiveRecord
# This method is abstract in the sense that it relies on
# +count_records+, which is a method descendants have to provide.
def size
- if owner.new_record? || (loaded? && !options[:uniq])
+ if !find_target? || (loaded? && !options[:uniq])
target.size
elsif !loaded? && options[:group]
load_target.size
diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb
index 3353cdf1ef..c5b90e873a 100644
--- a/activerecord/lib/active_record/associations/has_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_many_association.rb
@@ -103,6 +103,10 @@ module ActiveRecord
end
end
end
+
+ def foreign_key_present?
+ owner.attribute_present?(reflection.association_primary_key)
+ end
end
end
end