From 0e3a54a3b92c0f9a7bf95f8cb11ba2db89f6eecc Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Fri, 28 Dec 2007 18:01:22 +0000 Subject: Don't unnecessarily load has_many associations in after_update callbacks. Closes #6822 [stopdropandrew, canadaduane] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8504 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/lib/active_record/associations.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 3b2c6b7a59..deadba7418 100755 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -1079,8 +1079,10 @@ module ActiveRecord if association.respond_to?(:loaded?) if new_record? association - else + elsif association.loaded? association.select { |record| record.new_record? } + else + association.target.select { |record| record.new_record? } end.each do |record| errors.add "#{association_name}" unless record.valid? end @@ -1097,6 +1099,8 @@ module ActiveRecord association elsif association.respond_to?(:loaded?) && association.loaded? association.select { |record| record.new_record? } + elsif association.respond_to?(:loaded?) && !association.loaded? + association.target.select { |record| record.new_record? } else [] end -- cgit v1.2.3