0

我有一个 API 调用需要在“块”中进行(由于 API 限制)。然后我会遍历这些数据。

所有这些都发生在 rake 任务中。

这是循环:

Stripe::Event.all(:count => 100, :offset => 0).each do |event|

end

但我需要将offset参数增加 100(即 100、200、300)才能真正循环遍历所有事件。

那么offset在 rake 任务中增加该参数的最佳方法是什么?

4

1 回答 1

1

如果 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
于 2012-04-04T12:04:34.287 回答