我使用两种方法将类别同步到第三方服务。第一个方法循环遍历所有内容,第二个方法实际上导出每个类别。如果失败了,如何彻底跳出循环?
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
最佳答案
您有几个选项可以打破循环。最简单的是,您可以在循环代码中使用 break
或 return
。
在上面示例的上下文中,如果可能的话,在应用程序的更大上下文中执行以下操作可能会更容易:
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 方法中的循环。在这种情况下,我更喜欢该级别的中断/错误处理代码。
关于Ruby/Rails 跳出循环内的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26120599/