0

これはかなり簡単だと思いますが、解決策なしで何日も試してきました。私が試したことはすべてエラーを返しました。ここで助けを得たいと思っています。

まず、ここでこの gemfile を使用しています。

https://github.com/ryanwkan/covetous

有効なタグ ID で初期化した後 (rwk#1242)

@temp = Covetous::Profile::Career.new 'rwk#1242'

このような戻りオブジェクトを取得します

http://pastebin.com/CcW0aaLL

オブジェクトの上部は次のようになります。

#<Covetous::Profile::Career:0x000001014284c8 @url="http://us.battle.net/api/d3/profile/rwk-1242/", @response=#<HTTParty::Response:0x102e69ff8 parsed_response={"heroes"=>[{"name"=>"Ziyi", "id"=>10692899, "level"=>60, "hardcore"=>false, "paragonLevel"=>87, "gender"=>1, "dead"=>false, "class"=>"wizard", "last-updated"=>1354337248}, {"name"=>"Aerendil", etc ...

そして、INVALID tagID(invalid#9999) で初期化すると

@temp = Covetous::Profile::Career.new 'invalid#9999'

次のような戻りオブジェクトを取得します。

#<Covetous::Profile::Career:0x00000100dfbcf8 @url="http://us.battle.net/api/d3/profile/invalid-9999/", @response=#<HTTParty::Response:0x100d96a88 parsed_response={"code"=>"OOPS", "reason"=>"There was a problem processing the request."}, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"date"=>["Tue, 18 Dec 2012 02:30:00 GMT"], "server"=>["Apache"], "x-frame-options"=>["SAMEORIGIN"], "content-language"=>["en-US"], "vary"=>["Accept-Encoding"], "connection"=>["close"], "transfer-encoding"=>["chunked"], "content-type"=>["application/json;charset=UTF-8"]}>>

無効なタグが指定されるたびに、エラー メッセージをフラッシュする必要があります。

質問は、有効な応答を受け取ったか無効な応答を受け取ったかをどのように確認すればよいですか?

キー「code」または「heroes」の応答を確認しようとしましたが、キーが使用可能な場合にのみ機能し、そうでない場合は NoMethodError が返されます。キーの存在をテストして true/false を返す方法はありますか?

4

1 に答える 1

0

探しているときにNoMethodErrorを要求する、codeまたは与えることがわかっている場合は、その呼び出しを/ブロックでラップし、。でエラーをキャッチします。heroesbeginendrescue

于 2012-12-18T02:51:38.113 に答える