大きなデータを扱うときに使う find_each
(doc) しながら値を集めたいとき
processed = []
User.where('age > 30').find_each do |user|
# user に対するなんらかのバッチ処理
...
processed << user.id
end
processed
みたいにやっていたけど、 find_each
は Enumerator
かえすので普通にメソッドチェーンを使えば良い気がする。
processed = User.where('age > 30').find_each.map do |user|
# user に対するなんらかのバッチ処理
...
user.id
end