diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2012-06-01 03:03:50 +0100 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2012-06-01 03:03:50 +0100 |
commit | 7056079761eba049bbc6108946a1626fe169dbdf (patch) | |
tree | 6f55bdc0521a3dd521cb2776da07d927236203cf /activerecord/test | |
parent | 4df968071436a4585c8e4694efecfabb02f1a806 (diff) | |
download | rails-7056079761eba049bbc6108946a1626fe169dbdf.tar.gz rails-7056079761eba049bbc6108946a1626fe169dbdf.tar.bz2 rails-7056079761eba049bbc6108946a1626fe169dbdf.zip |
Restore behavior of Active Record 3.2.3 scopes
A series of commits relating to preloading and scopes caused a regression.
Cloning the relation calls initialize_copy which resets a number of instance
variables to nil. Without this the scope thinks that it is already loaded
when it is called again.
Reverts the following commits:
13f1401a6cf0266a3b0a91b173f976db2d4e50f3
8491740ca5361ba9df20e1c8b906c709f5bfbc12
dffbb521a0d00c8673a3ad6e0e8ff526f32daf4e
Fixes #6575, #6576 & #6577
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/associations/eager_test.rb | 24 | ||||
-rw-r--r-- | activerecord/test/models/comment.rb | 2 |
2 files changed, 0 insertions, 26 deletions
diff --git a/activerecord/test/cases/associations/eager_test.rb b/activerecord/test/cases/associations/eager_test.rb index d7af07f9c7..1dc71ac4cc 100644 --- a/activerecord/test/cases/associations/eager_test.rb +++ b/activerecord/test/cases/associations/eager_test.rb @@ -1095,28 +1095,4 @@ class EagerAssociationTest < ActiveRecord::TestCase Post.includes(:comments).order(nil).where(:comments => {:body => "Thank you for the welcome"}).first end end - - def test_deep_including_through_habtm - posts = Post.find(:all, :include => {:categories => :categorizations}, :order => "posts.id, categories.id") - assert_no_queries { assert_equal 2, posts[0].categories[0].categorizations.length } - assert_no_queries { assert_equal 1, posts[0].categories[1].categorizations.length } - assert_no_queries { assert_equal 2, posts[1].categories[0].categorizations.length } - end - - test "scoping with a circular preload" do - assert_equal Comment.find(1), Comment.preload(:post => :comments).scoping { Comment.find(1) } - end - - test "circular preload does not modify unscoped" do - expected = FirstPost.unscoped.find(2) - FirstPost.preload(:comments => :first_post).find(1) - assert_equal expected, FirstPost.unscoped.find(2) - end - - test "preload ignores the scoping" do - assert_equal( - Comment.find(1).post, - Post.where('1 = 0').scoping { Comment.preload(:post).find(1).post } - ) - end end diff --git a/activerecord/test/models/comment.rb b/activerecord/test/models/comment.rb index bca937a299..88b139d931 100644 --- a/activerecord/test/models/comment.rb +++ b/activerecord/test/models/comment.rb @@ -11,8 +11,6 @@ class Comment < ActiveRecord::Base belongs_to :post, :counter_cache => true has_many :ratings - belongs_to :first_post, :foreign_key => :post_id - has_many :children, :class_name => 'Comment', :foreign_key => :parent_id belongs_to :parent, :class_name => 'Comment', :counter_cache => :children_count |