From 691eeae652983e19e7e156bdd7fa024be47e151a Mon Sep 17 00:00:00 2001 From: Balaji Raghavan Date: Thu, 5 Mar 2009 18:41:02 +0530 Subject: [PATCH] find_in_batches can and should take option :order --- activerecord/lib/active_record/batches.rb | 3 +-- activerecord/test/cases/batches_test.rb | 6 ------ 2 files changed, 1 insertions(+), 8 deletions(-) diff --git a/activerecord/lib/active_record/batches.rb b/activerecord/lib/active_record/batches.rb index 9e9c8fb..73da535 100644 --- a/activerecord/lib/active_record/batches.rb +++ b/activerecord/lib/active_record/batches.rb @@ -45,12 +45,11 @@ module ActiveRecord # group.each { |person| person.party_all_night! } # end def find_in_batches(options = {}) - raise "You can't specify an order, it's forced to be #{batch_order}" if options[:order] raise "You can't specify a limit, it's forced to be the batch_size" if options[:limit] start = options.delete(:start).to_i - with_scope(:find => options.merge(:order => batch_order, :limit => options.delete(:batch_size) || 1000)) do + with_scope(:find => options.merge(:order => options.delete(:order) || batch_order, :limit => options.delete(:batch_size) || 1000)) do records = find(:all, :conditions => [ "#{table_name}.#{primary_key} >= ?", start ]) while records.any? diff --git a/activerecord/test/cases/batches_test.rb b/activerecord/test/cases/batches_test.rb index 108d679..93c03c8 100644 --- a/activerecord/test/cases/batches_test.rb +++ b/activerecord/test/cases/batches_test.rb @@ -17,12 +17,6 @@ class EachTest < ActiveRecord::TestCase end end - def test_each_should_raise_if_the_order_is_set - assert_raise(RuntimeError) do - Post.each(:order => "title") { |post| post } - end - end - def test_each_should_raise_if_the_limit_is_set assert_raise(RuntimeError) do Post.each(:limit => 1) { |post| post } -- 1.6.0.1