0

この基本的なエラーを解決できませんでした。コードでは何も変更していませんが、if句のインデントを修正しています。

Google DirectionのAPIにリクエストを送信し、ポイント間の車での合計移動時間をキャプチャします。以下のコードを使用してキャプチャしようとしています。

duration = hash['routes'][0]['legs'][0]['duration'].fetch('value')

ただし、以下のように比較しようとすると、エラーが発生します。

if duration < timeToArriveSecond #where timeToArriveSecond is a parameter started with value -1. Integer value

私が立ち往生しているので、ここの開発者が私を啓発することは可能でしょうか?

4

1 に答える 1

0

ハッシュがどのように見えるかを知らずに言うのは難しいですが、「ルート」と「脚」は持続時間の配列キー「値」を返すので、次のように行を変更してみてください:

duration = hash['routes'][0]['legs'][0]['duration'].fetch('value')[0]

またはフェッチが ["value"] ここのように機能するため

duration = hash['routes'][0]['legs'][0]['duration']['value'][0]

私にとっては、ハッシュは次のように見えるようです(アクセス方法を知る限り:

irb(main):065:0* hash 
                 => {"routes"=>[{"legs"=>[{"duration"=>{"value"=>[1, 2, 3]}}]}]}
irb(main):066:0> hash["routes"][0]["legs"][0]["duration"].fetch("value")
                 => [1, 2, 3]
于 2012-09-20T22:09:52.847 に答える