我正在循环访问一组用户,作为其中的一部分,我正在调用第三方 API(通过 Intercom API Ruby wrapper)。
如果找不到用户,Intercom API 将抛出一个 Intercom::ResourceNotFound
,并停止整个过程。
我只是希望它在找不到它时跳过用户。
User.each do |user|
user = Intercom::User.find_by_email(user.email) # Intercom::ResourceNotFound thrown if not found
user.custom_data["Example"] = true
user.save
end
这是 Intercom Ruby 包装器的问题吗?或者是否有典型的 Ruby 或 Rails 方法来处理这类事情?
最佳答案
捕获异常怎么样?
User.each do |user|
begin
user = Intercom::User.find_by_email(user.email) # Intercom::ResourceNotFound thrown if not found
user.custom_data["Example"] = true
user.save
rescue Intercom::ResourceNotFound
end
end
因为您只想在找不到用户(并抛出异常)时跳过,所以在rescue
之后没有错误处理代码。但是如果你想放一些调试信息或类似的东西,你可以写:
rescue Intercom::Resource
puts %{Could not work on user...}
end
关于ruby-on-rails - 通过 ResourceNotFound 继续循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882459/