From 1ca52f2e69b2dd3a2261efcb0876827a638471a9 Mon Sep 17 00:00:00 2001 From: Rizwan Reza Date: Sat, 15 May 2010 21:02:15 +0430 Subject: [PATCH] Allow ranges in finder --- .../lib/active_record/relation/finder_methods.rb | 2 +- activerecord/test/cases/finder_test.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletions(-) diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 7a0c9dc..a150df2 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -265,7 +265,7 @@ module ActiveRecord expects_array = ids.first.kind_of?(Array) return ids.first if expects_array && ids.first.empty? - ids = ids.flatten.compact.uniq + ids = ids.map {|id| Array.wrap(id)}.flatten.compact.uniq case ids.size when 0 diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb index e78db89..52b8c3d 100644 --- a/activerecord/test/cases/finder_test.rb +++ b/activerecord/test/cases/finder_test.rb @@ -147,6 +147,11 @@ class FinderTest < ActiveRecord::TestCase assert_equal 2, last_devs.size end + def test_find_by_range + assert_equal 4, Account.find(3..6).size + assert_equal 5, Account.find(1, 3..6).size + end + def test_find_an_empty_array assert_equal [], Topic.find([]) end -- 1.6.5.2