Web サービス ( fwix ) にリクエストを送信しようとしています。レール アプリで次のイニシャライザを作成しました。
何らかの理由で、パラメーターの値にスペースとして 's を含める必要がある
+
のですが、これは ruby で実現できる標準的なことですか? さらに、これは URL を形成する標準的な方法ですか? スペースは だと思いました%20
。私のコードでは、送信されたオプションのいずれかを取得して、次のようにそれぞれを記述する代わりにそれらを使用する方法はありますか
query_items << "api_key=#{options[:api_key]}" if options[:api_key]
以下は私のコードです。私が抱えている問題の領域はquery_items
、最後のメソッドの各パラメーターの で始まる行です。どんなアイデアでも素晴らしいでしょう!
require 'httparty'
module Fwix
class API
include HTTParty
class JSONParser < HTTParty::Parser
def json
JSON.parse(body)
end
end
parser JSONParser
base_uri "http://geoapi.fwix.com"
def self.query(options = {})
begin
query_url = query_url(options)
puts "querying: #{base_uri}#{query_url}"
response = get( query_url )
rescue
raise "Connection to Fwix API failed" if response.nil?
end
end
def self.query_url(input_options = {})
@defaults ||= {
:api_key => "my_api_key",
}
options = @defaults.merge(input_options)
query_url = "/content.json?"
query_items = []
query_items << "api_key=#{options[:api_key]}" if options[:api_key]
query_items << "province=#{options[:province]}" if options[:province]
query_items << "city=#{options[:city]}" if options[:city]
query_items << "address=#{options[:address]}" if options[:address]
query_url += query_items.join('&')
query_url
end
end
end