diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-04 04:49:07 -0800 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-04 04:49:07 -0800 |
commit | 549da0dd8f88179485b45338bea383fe61775624 (patch) | |
tree | e45ee0a495f7f351e6f3d7822b62ab209e34132e /activerecord/test | |
parent | dac811e8542ee7b9abb88a5839fa22dd59c7c737 (diff) | |
parent | 1b961765871eba76d50d463d3af6c3c5926f537a (diff) | |
download | rails-549da0dd8f88179485b45338bea383fe61775624.tar.gz rails-549da0dd8f88179485b45338bea383fe61775624.tar.bz2 rails-549da0dd8f88179485b45338bea383fe61775624.zip |
Merge pull request #8413 from senny/8403_backport
backport #8403, no intermediate AR objects when eager loading.
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/associations/eager_test.rb | 6 | ||||
-rw-r--r-- | activerecord/test/models/developer.rb | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/eager_test.rb b/activerecord/test/cases/associations/eager_test.rb index bf01b46852..d3601e0dba 100644 --- a/activerecord/test/cases/associations/eager_test.rb +++ b/activerecord/test/cases/associations/eager_test.rb @@ -916,6 +916,12 @@ class EagerAssociationTest < ActiveRecord::TestCase assert_equal 3, Developer.find(:all, :include => 'projects', :conditions => 'developers_projects.access_level = 1', :limit => 5).size end + def test_dont_create_temporary_active_record_instances + Developer.instance_count = 0 + developers = Developer.find(:all, :include => 'projects', :conditions => 'developers_projects.access_level = 1', :limit => 5).to_a + assert_equal developers.count, Developer.instance_count + end + def test_order_on_join_table_with_include_and_limit assert_equal 5, Developer.find(:all, :include => 'projects', :order => 'developers_projects.joined_on DESC', :limit => 5).size end diff --git a/activerecord/test/models/developer.rb b/activerecord/test/models/developer.rb index 4dc9fff9fd..a730d86586 100644 --- a/activerecord/test/models/developer.rb +++ b/activerecord/test/models/developer.rb @@ -63,6 +63,15 @@ class Developer < ActiveRecord::Base self.all end end + + after_find :track_instance_count + cattr_accessor :instance_count + + def track_instance_count + self.class.instance_count ||= 0 + self.class.instance_count += 1 + end + private :track_instance_count end class AuditLog < ActiveRecord::Base |