我有一个 API 调用需要在“块”中进行(由于 API 限制)。然后我会遍历这些数据。
所有这些都发生在 rake 任务中。
这是循环:
Stripe::Event.all(:count => 100, :offset => 0).each do |event|
end
但我需要将offset
参数增加 100(即 100、200、300)才能真正循环遍历所有事件。
那么offset
在 rake 任务中增加该参数的最佳方法是什么?
我有一个 API 调用需要在“块”中进行(由于 API 限制)。然后我会遍历这些数据。
所有这些都发生在 rake 任务中。
这是循环:
Stripe::Event.all(:count => 100, :offset => 0).each do |event|
end
但我需要将offset
参数增加 100(即 100、200、300)才能真正循环遍历所有事件。
那么offset
在 rake 任务中增加该参数的最佳方法是什么?
如果 Stripe::Event 是 ActiveRecord 模型,我认为您正在寻找:
Stripe::Event.find_in_batches(:batch_size => 100).each do |batch|
batch.each do |event|
...
end
end
否则,我认为您可以查看http://apidock.com/rails/ActiveRecord/Batches/find_in_batches以获取有关如何解决此问题的灵感。
最直接的方法是
events = "not blank"
count = 100
offset = 0
until events.blank? do
events = Stripe::Event.all(:count => count, :offset => offset)
events.each do |event|
end
offset += count
end