2014-09-30 61 views
1

我有兩種方法可以將類別同步到第三方服務。第一種方法遍歷所有內容,第二種方法實際導出每個類別。如果出現故障,我如何徹底擺脫循環?Ruby/Rails跳出循環內的方法

def export_all 
    Category.find_each do |c| 
    export_category(c) 
    end 
end 

def export_category(c) 
    begin 
    sync_category(c) 
    rescue Exception => e 
    # break out of `export_all` loop 
    end 
end 

回答

1

你有幾個選項可以打破循環。最簡單的,您可以在循環代碼中使用breakreturn

在您的例子以上的情況下,可能你的應用程序的大背景下更容易,如果可能的話,要做到以下幾點:

def export_all 
    Category.find_each do |c| 
    begin 
     export_category(c) 
    rescue SpecificErrorIsBetterThanGenericExceptionIfPossible => e 
     break 
    end 
    end 
end 

def export_category(c) 
    sync_category(c) 
end 

這似乎從你的問題,你要在循環你的export_all方法在遇到異常時中斷。在這種情況下,我更喜歡我的破解/錯誤處理代碼。