2011-10-19 6 views
0

ランダムに生成されたファイルをドメインのルートにアップロードすることで、ユーザーが自分のレール3アプリケーションの一部としてドメインを管理できるかどうかを確認しようとしています(Googleと同じ方法でGoogle Appsに対応します) 。現在、Net :: HTTPを使用していますが、アドレスが有効な場合は動作するようですが、アドレスが有効でない場合はこのエラーが発生します。ドメインのオーナーを確認しています

getaddrinfo: nodename nor servname provided, or not known 

このエラーまたはコントローラのコードを作成するためのより良い/異なる方法をどうにかして無視する方法はありますか?

def check 
    require 'net/http' 
    require 'uri' 
    result = Net::HTTP.get_response(URI.parse('http://www.example.com/21312324213123.html')) 
    if Net::HTTPSuccess 
     @test = "true" 
    else 
     @test = "false" 
    end 
end 

助けがあれば助かります。ありがとう。

答えて

0

あなたがする必要があるのは、その例外から救助し、それを別のケースとして返すことだけです。

def check 
    # ... 
rescue => e 
    # Uh oh, got an exception 
    @error = e.to_s 
    @test = "false" 
end 
+0

ありがとうtadman that works。まだ非常にルビーに新しいので、私は救助がオプションだったことも知らなかった。 – Daniel

+0

より厳しいエラーを隠すのを避けるため、受信した特定の例外から 'レスキューする 'ことがベストプラクティスです。この場合、さまざまなものが得られる可能性があるので、おそらくそれをキャプチャして報告する方が安全でしょう。タイムアウトエラーは、ページを十分に迅速にダウンロードできなかった場合、またはサーバーが応答していない場合にも発生します。 – tadman

関連する問題