Возможно, это не тот ответ, который вы хотите, но я рекомендую вам переключиться на Savon . Например, ваша задача выглядит следующим образом (этот пример взят со страницы savon на github):
require "savon"
# create a client for your SOAP service
client = Savon::Client.new("http://service.example.com?wsdl")
client.wsdl.soap_actions
# => [:create_user, :get_user, :get_all_users]
# execute a SOAP request to call the "getUser" action
response = client.request(:get_user) do
soap.body = { :id => 1 }
end
response.body
# => { :get_user_response => { :first_name => "The", :last_name => "Hoff" } }