Make Model.all return an array rather than a relation for consistency. Use Model.scoped to get a relation

This commit is contained in:
Pratik Naik
2009-12-27 15:06:45 +05:30
parent 1efc8edb5f
commit 81608cf8fa
2 changed files with 9 additions and 3 deletions

View File

@@ -671,9 +671,9 @@ module ActiveRecord #:nodoc:
options = args.extract_options!
if options.empty? && !scoped?(:find)
arel_table
arel_table.to_a
else
construct_finder_arel_with_includes(options)
construct_finder_arel_with_includes(options).to_a
end
end

View File

@@ -1902,8 +1902,14 @@ class BasicsTest < ActiveRecord::TestCase
assert_equal Developer.find(:first, :order => 'id desc'), Developer.last
end
def test_all
developers = Developer.all
assert_kind_of Array, developers
assert_equal Developer.find(:all), developers
end
def test_all_with_conditions
assert_equal Developer.find(:all, :order => 'id desc'), Developer.all.order('id desc').to_a
assert_equal Developer.find(:all, :order => 'id desc'), Developer.order('id desc').all
end
def test_find_ordered_last