Итак, если вы планируете использовать find_in_batches, это, вероятно, означает, что вам нужно пройти через много записей, и вы вполне можете захотеть, чтобы вам только возвращались выбранные поля из БД.
В Rails3/4 вы можете связать find_in_batches с любым другим методом ActiveRecord :: Relation (или, по крайней мере, большинством ... Я не проверял их всех лично).
Это, вероятно, то, что вы ищете
User.select(:id).find_in_batches(:batch_size => 100) do |group|
# do something with group...
# like print all the ids
puts group.map(&:id)
end
Если вы попробуете это в консоли, он сгенерирует SQL следующим образом ...
SELECT id FROM `users` WHERE (`users`.`id` > 895846) ORDER BY `users`.`id` ASC LIMIT 100
См. Дополнительную информацию здесь: http://api.rubyonrails.org/classes/ActiveRecord/Batches.html