aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-12-30 12:13:55 +0530
committerPratik Naik <pratiknaik@gmail.com>2009-12-30 12:14:00 +0530
commit8734f9a2710e6ad62caa7e1dcf543b83562e18ed (patch)
treeebdbe1b9df9d88e2afcf8b2a68bab610ffab951d
parentbdf59a561877ab9ac97a89697eaeb8e0db88a408 (diff)
downloadrails-8734f9a2710e6ad62caa7e1dcf543b83562e18ed.tar.gz
rails-8734f9a2710e6ad62caa7e1dcf543b83562e18ed.tar.bz2
rails-8734f9a2710e6ad62caa7e1dcf543b83562e18ed.zip
Relation#many? shoud load the records if there's a LIMIT
-rw-r--r--activerecord/lib/active_record/relation.rb2
-rw-r--r--activerecord/test/cases/relations_test.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index fa517aba38..52d66dc20a 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -250,7 +250,7 @@ module ActiveRecord
if block_given?
to_a.many? { |*block_args| yield(*block_args) }
else
- size > 1
+ @relation.send(:taken).present? ? to_a.many? : size > 1
end
end
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index 5d6f9ad430..6605c8bf34 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -471,4 +471,10 @@ class RelationTest < ActiveRecord::TestCase
assert posts.loaded?
end
+ def test_many_with_limits
+ posts = Post.scoped
+
+ assert posts.many?
+ assert ! posts.limit(1).many?
+ end
end