带有重复键的Ruby哈希,用于创建URL参数

时间:2017-07-07 16:19:56

标签: ruby

我使用哈希来生成URL时使用的参数。我有这样的事情:

params = {
  :center => Geocoder.coordinates(currentlocation).join(","),
  :zoom => 10,
  :size => "460x280",
  :markers => Geocoder.coordinates(markerlocation).join(","),
  :sensor => true,
  :key => ENV["GOOGLE_API_KEY"]
  }

query_string =  params.map{|k,v| "#{k}=#{v}"}.join("&")
image_tag "https://maps.googleapis.com/maps/api/staticmap?#{query_string}", :alt => location

但是我需要有多个"标记" URL中的参数。对于我生成的每个网址,我都不知道有多少"标记"我需要的参数。例如,如果我有一个数组markerlocations,我将需要为数组的每个成员创建一个:markers键值对,以便在URL中使用。实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

require 'net/http'
params = {
  :center => Geocoder.coordinates(currentlocation).join(","),
  :zoom => 10,
  :size => "460x280",
  :markers => [Geocoder.coordinates(markerlocation).join(",")],
  :sensor => true,
  :key => ENV["GOOGLE_API_KEY"]
  }
query_string = URI.encode_www_form(params)
image_tag ...