2012-08-09 2 views
1

일련의 사용자를 반복하고 있는데 그 중 일부로 Intercom API Ruby wrapper을 통해 제 3 자 API에 대한 호출을하고 있습니다.ResourceNotFound를 통한 계속적인 루프?

사용자를 찾을 수 없으면 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 

인터콤 Ruby 래퍼에 문제가 있습니까? 아니면 이런 종류의 일을 처리 할 수있는 전형적인 Ruby 나 Rails 방법이 있습니까?

답변

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 

당신은 단지 그가 발견되지 않는 (예외가 throw) 경우 rescue 후 오류 처리 코드가 없습니다 사용자를 건너 를 원하기 때문에. 하지만 디버그 메시지 나 그와 비슷한 것을 넣고 싶다면 다음과 같이 쓸 수 있습니다 :

rescue Intercom::Resource 
    puts %{Could not work on user...} 
    end