如何解决ruby-on-rails-3中使用Savon时TypeError:String转Hash的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计392个文字,预计阅读时间需要2分钟。
在Rails 3.2.11上安装Savon 2.0.2时,尝试在控制台创建新客户端端点时遇到TypeError:无法将String转换为Hash。错误信息如下:
1.9.3-p362 :003 :client=Savon::Client.new(http://www.webservicex.net/uszip.asmx?WS)
我刚刚在Rails 3.2.11上安装了Savon 2.0.2.当我尝试在控制台中创建一个新客户端时,我得到TypeError:无法将String转换为Hash:1.9.3-p362 :003 > client = Savon::Client.new("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应用程序,因此我不明白可能出现的问题.
尝试:client = Savon::Client.new(wsdl: "www.webservicex.net/uszip.asmx?WSDL")
要么
client = Savon.client(wsdl: "www.webservicex.net/uszip.asmx?WSDL")
本文共计392个文字,预计阅读时间需要2分钟。
在Rails 3.2.11上安装Savon 2.0.2时,尝试在控制台创建新客户端端点时遇到TypeError:无法将String转换为Hash。错误信息如下:
1.9.3-p362 :003 :client=Savon::Client.new(http://www.webservicex.net/uszip.asmx?WS)
我刚刚在Rails 3.2.11上安装了Savon 2.0.2.当我尝试在控制台中创建一个新客户端时,我得到TypeError:无法将String转换为Hash:1.9.3-p362 :003 > client = Savon::Client.new("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应用程序,因此我不明白可能出现的问题.
尝试:client = Savon::Client.new(wsdl: "www.webservicex.net/uszip.asmx?WSDL")
要么
client = Savon.client(wsdl: "www.webservicex.net/uszip.asmx?WSDL")

