Fixed usage of :limit and with_scope when the association in scope is a 1:m (closes #5208) [alex@purefiction.net]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4422 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2006-06-03 21:51:57 +00:00
parent 2fbcae1912
commit d016d9a6d4
3 changed files with 11 additions and 1 deletions

View File

@ -1,5 +1,7 @@
*SVN*
* Fixed usage of :limit and with_scope when the association in scope is a 1:m #5208 [alex@purefiction.net]
* Fixed migration trouble with SQLite when NOT NULL is used in the new definition #5215 [greg@lapcominc.com]
* Fixed problems with eager loading and counting on SQL Server #5212 [kajism@yahoo.com]

View File

@ -1145,7 +1145,7 @@ module ActiveRecord
add_joins!(sql, options, scope)
add_conditions!(sql, options[:conditions], scope)
add_limited_ids_condition!(sql, options, join_dependency) if !using_limitable_reflections?(join_dependency.reflections) && options[:limit]
add_limited_ids_condition!(sql, options, join_dependency) if !using_limitable_reflections?(join_dependency.reflections) && ((scope && scope[:limit]) || options[:limit])
sql << "ORDER BY #{options[:order]} " if options[:order]

View File

@ -1195,6 +1195,14 @@ class BasicsTest < Test::Unit::TestCase
assert scoped_developers.include?(developers(:david))
end
def test_scoped_find_limit_offset_including_has_many_association
topics = Topic.with_scope(:find => {:limit => 1, :offset => 1, :include => :replies}) do
Topic.find(:all, :order => "topics.id")
end
assert_equal 1, topics.size
assert_equal 2, topics.first.id
end
def test_base_class
assert LoosePerson.abstract_class?
assert !LooseDescendant.abstract_class?