I have a hash with a Vehicle object and some Google Maps API calculations:
{#<Vehicle id: 9, type: "hybrid">=>#<GoogleDistanceMatrix::Route origin: #<GoogleDistanceMatrix::Place address: "LAX airport", extracted_attributes_from: {"address"=>"LAX airport"}>, destination: #<GoogleDistanceMatrix::Place address: "Venice Beach", extracted_attributes_from: {"address"=>"Venice Beach"}>, status: "ok", distance_text: "10.4 km", distance_in_meters: 10400, duration_text: "13 mins", duration_in_seconds: 780>}
How do I get the Vehicle#type and GoogleDistanceMatrix#address (LAX airport)? I can't seem to access it.
CodePudding user response:
It seems like your hash has a Vehicle as a key and GoogleDistanceMatrix::Route as a value (note it's not a GoogleDistanceMatrix as you said), therefore you could access both with something like this:
my_hash.each do |key, val|
puts key.type # => vehicle type
puts val.origin.address # => explanation below on why #origin is needed
end
Also note that GoogleDistanceMatrix::Route does not contain an address property directly. Rather, address seems to be accessible by calling origin (which returns an object of type GoogleDistanceMatrix::Place) and then address on the result.
