1

私は一連のユーザーをループしています。その一環として、サードパーティの 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の方法はありますか?

4

1 に答える 1

3

例外をキャッチするのはどうですか?

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
于 2012-08-09T11:36:14.540 に答える