从特定ID开始查找记录

时间:2011-09-07 10:01:47

标签: ruby-on-rails ruby rake

在Rails中,我正在执行一个rake任务:

@shops = Shops.find(:all)
@shops.each do |shop|
  # some task here
end

我有100条记录。任务运行1到50,并因某些异常而停止。如何更改我的rake任务以恢复任务,但是从51开始运行?

感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用with_index

@shops.each_with_index |shop, i|
    # i will increment each time through the loop
end

请注意,索引将从0开始。因此,从第50项开始,您需要从索引49开始。

答案 1 :(得分:1)

根据评论中的要求,我会将此作为答案发布:

@shops.sort_by(&:id).each[50..-1] do |shop|
  # whatever you need to do
end

答案 2 :(得分:0)

@shops.each do |shop|
    begin
        # some task here
    rescue
        # error
    end
end