2013-01-15 66 views
3

我剛剛在Rails 3.2.11上安裝了Savon 2.0.2。當我嘗試在控制檯中創建一個新的客戶端,我得到TypeError: can't convert String into HashSavon用「TypeError:無法將字符串轉換爲散列」的方式打開框。

1.9.3-p362 :003 > client = Savon::Client.new("http://www.webservicex.net/uszip.asmx?WSDL") 
TypeError: can't convert String into Hash 
    from /Users/jasonswett/.rvm/gems/ruby-1.9.3-p362/gems/savon-2.0.2/lib/savon/options.rb:49:in `merge' 
    from /Users/jasonswett/.rvm/gems/ruby-1.9.3-p362/gems/savon-2.0.2/lib/savon/options.rb:49:in `initialize' 
    from /Users/jasonswett/.rvm/gems/ruby-1.9.3-p362/gems/savon-2.0.2/lib/savon/client.rb:10:in `new' 
    from /Users/jasonswett/.rvm/gems/ruby-1.9.3-p362/gems/savon-2.0.2/lib/savon/client.rb:10:in `initialize' 
    from (irb):3:in `new' 
    from (irb):3 
    from /Users/jasonswett/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start' 
    from /Users/jasonswett/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start' 
    from /Users/jasonswett/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

任何想法,這可能是爲什麼發生?這是一個全新的,幾乎是香草的Rails應用程序,所以我不明白會出現什麼問題。

回答

7

嘗試:

client = Savon::Client.new(wsdl: "http://www.webservicex.net/uszip.asmx?WSDL") 

client = Savon.client(wsdl: "http://www.webservicex.net/uszip.asmx?WSDL") 
+0

都工作。謝謝。 –

+0

沒問題。請儘可能接受答案。謝謝! –

0

肥皂預計哈希,而不是字符串,所以你可以在哈希鍵,值格式

舊方式的軌道參數添加哈希描述散列鍵

client = Savon.client(:wsdl=> "http://www.webservicex.net/uszip.asmx?WSDL") 

來描述哈希新方式軌

client = Savon.client(wsdl: "http://www.webservicex.net/uszip.asmx?WSDL") 
相關問題