facebookから返されたjsonを解析しようとしています。 私の考えはfacebook jsonからできるだけ多くのdetailksを得ることです。 は、だから私はnilを評価している間に、facebook jsonがレールを回避しています。[]
education_array = auth['extra']['user_hash']['education']
education_array.each do |edu|
puts edu['school']['name']
puts edu['type']
puts edu['year']['name']
end
(認証するFacebookからJSONを解析していると仮定)のように使用今ここでの問題は、一部の人は学校名ではなく、年を追加しているかもしれないということです。 ので、明らかに
eduの[ '年'] [ '名前'] を伝えるエラーがスローされます "nilを評価中にエラーが発生しました。[]"。
どうすればこの問題を回避できますか?私は、それ自体が存在しない 「」|| [「年」] [「名前」] EDUを置く
が、これはまだ場合にエラーをスローします「年」だったと思っ
一つの方法。 auth ['extra']が存在するかどうかを確認します。 次に、auth ['extra'] [' user_hash ']が存在する auth [' extra '] [' user_hash '] [' education ']が存在するかどうか確認してください auth [' extra '] [' user_hash '] [' education '] [' year '] ['name'] など..
例外処理を使用すると良い方法ではないと思います。
いいですか?
は
しかし、あなたはそれが計算の点では何が違うのだと思いますか? 私はこれが内部的にintの階段であることを意味します。ではない ? –
これを 'if'sの階段で書くことができます。これはこれを行うための最もきちんとした方法です。これ以上のRubyを得ることはできません。 –
ああ、ありがとう。 –