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]

或者因为 fetch 在这里像 ["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 回答