Rails 5 adiciona opção de acabamento em find_in_batches
No Rails 4.x tínhamos a opção de início no find_in_batches
método.
Person.find_in_batches(start: 1000, batch_size: 2000) do |group|
group.each { |person| person.party_all_night! }
end
O código acima fornece lotes de Person a partir do registro cujo valor de chave primária é igual a 1000.
Não há valor final para a chave primária. Isso significa que, no caso acima, todos os registros com valor de chave primária maior que 1000 são buscados.
O Rails 5 apresenta a opção de finalização que serve como um limite superior para o valor da chave primária nos registros sendo buscados.
Person.find_in_batches(start: 1000, finish: 9500, batch_size: 2000) do |group|
group.each { |person| person.party_all_night! }
end
O código acima garante que nenhum registro em qualquer um dos lotes tenha o valor da chave primária maior que 9500.
Referência: http://blog.bigbinary.com/2016/06/06/rails-5-provides-finish-option-for-find-in-batches.html