我会尝试的一件事是使用 Ruby 的内置URI类以编程方式构建 URL:
require 'ostruct'
require 'uri'
#
# set up some variables just for example values
#
list = OpenStruct.new('id' => 'some_list_id')
item = OpenStruct.new('foursquare_id' => 'some_foursquare_id')
ENV['FOURSQUARE_TOKEN'] = 'foo'
uri = URI.parse("https://api.foursquare.com/v2/lists/#{ list.id }/deleteitem")
uri.query = URI.encode_www_form(
'itemId' => item.foursquare_id,
'oauth_token' => ENV['FOURSQUARE_TOKEN'],
'v' => 20120321,
)
uri.to_s
=> "https://api.foursquare.com/v2/lists/some_list_id/deleteitem?itemId=some_foursquare_id&oauth_token=foo&v=20120321"
这是一个好主意的原因是某些值必须在 URL 中编码。简单地把它们塞进一根绳子不会为你做到这一点。相反,依靠一个将这些东西考虑在内的类。
Addressable::URI gem 更加全面,因此如果您需要更多功能/功能,请查看那里。