3

Rails3.2.11にSavon2.0.2をインストールしました。コンソールで新しいクライアントを作成しようとすると、次のようになりますTypeError: can't convert String into Hash

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アプリなので、何がうまくいかないのかわかりません。

4

2 に答える 2

7

試す:

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

また

client = Savon.client(wsdl: "http://www.webservicex.net/uszip.asmx?WSDL")
于 2013-01-15T18:57:22.040 に答える
0

soapは文字列ではなくハッシュを想定しているため、ハッシュキー、値形式のパラメーターにハッシュを追加できます

ハッシュキーを記述するためのRailsの古い方法

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

Railsでハッシュを記述する新しい方法

client = Savon.client(wsdl: "http://www.webservicex.net/uszip.asmx?WSDL")
于 2013-01-29T08:10:46.303 に答える