# File lib/active_record/batches.rb, line 47
      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
        batch_size = options.delete(:batch_size) || 1000

        with_scope(:find => options.merge(:order => batch_order, :limit => batch_size)) do
          records = find(:all, :conditions => [ "#{table_name}.#{primary_key} >= ?", start ])

          while records.any?
            yield records

            break if records.size < batch_size
            records = find(:all, :conditions => [ "#{table_name}.#{primary_key} > ?", records.last.id ])
          end
        end
      end