2013-12-05 3 views
2

Следующие бросает LocalJumpErrorкак each_cons в партиях с активной записью

records.find_each.each_cons(3) 

Есть встроенный способ использовать each_cons в памяти людей партий?


Edit:

В идеале перекрытие будет работать через пределах партии. each_cons взаимодействует с перекрывающимися группами, поэтому записи с идентификаторами (0, 1, 2), (1, 2, 3), (2, 3, 4) и т. Д.

Если размер партии составляет 1000 (что, я думаю, для Rails), было бы менее оптимально иметь перекрытие, ограниченное в группе партий. Например, записи с индексами (997, 998, 999), а затем следующая итерация (1000, 1001, 1002) нежелательны.

+0

Что ваш случай использования? – beck03076

+0

@ beck03076 модель представляет изменения, поэтому ретроактивное удаление избыточных записей – AJcodez

ответ

0

да, как это:

User.all.find_in_batches do |group| 
    group.each_cons(3) { |users| puts users.map(&:name) } 
end 
+0

будет работать через группы? Например, если размер партии равен 1000, я бы получил группу (999, 1000, 1001)? – AJcodez

+0

ха, что? Я не понимаю ваш вопрос. – phoet

+0

отредактированный вопрос - надеюсь, что это имеет смысл! – AJcodez

Смежные вопросы