ruby-on-rails - 通过 ResourceNotFound 继续循环?

标签 ruby-on-rails ruby api activeresource

我正在循环访问一组用户,作为其中的一部分,我正在调用第三方 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/

相关文章:

git - 从存储库中获取原始文件

python - Django objects.update_or_create

ruby-on-rails - ActiveSupport::JSON 解码散列丢失符号

ruby-on-rails - 将数组作为表列推送到数组,然后保存模型

ruby-on-rails - 为什么错误 "No route matches [GET] "/users/sign_out”?

ruby - 如何只将时间存储在数据库中?

ruby-on-rails - expect() 在 rspec/cucumber 中做了什么?

ruby-on-rails - Rails Faker 如何创建自定义方法

ruby - 将对象设置为 nil 是否很常见?

python - Twitter API Python 字符编码