Topic: Issues handling SavonRB SOAP Response (hash)
I have a webservice I query for search results (let's assume I'm querying Google's web service or example). In my query, I could ask for 1 or more results. When I ask for 1 result, I transform the SavonRB answer to a hash and get the "title" like this [:field1][:field2][:field3][:field4][:title]
- My helper
def wssearch (param1)
wsanswer = @soap_client.request :sear, "PerformQuery" do
soap.body = { Body I send to the WS with my #{param1}}
end
@wsanswerhash = wsanswer.to_hash[:field1][:field2][:field3][:field4][:title]- My view
<% wssearch( "query" ) %>
<%= @wsanswerhash %>When I only ask for 1 result (in my WS query), it works and I get my title. When I ask for more than 1 result (in my WS query), I get the "can't convert Symbol into Integer" error for the line <% wssearch( "query" ) %>
Here are the SOAP answers
When I ask for 1 result
{:field1=>{:field2=>{:field5=>true, :field6=>"@uri", :field3=>{:field7=>{:field8=>"value1", :title=>"TheTitle1", :field9=>"blabla1", }}, :exception_code=>"1", :exception_context=>nil}, :@xmlns=>"http://mylink.com/webservice"}}When I ask for 2 results (Notice the extra [ ] )
{:field1=>{:field2=>{:field5=>true, :field6=>"@uri", :field3=>{:field7=>[{:field8=>"Value1", :title=>"TheTitle1", :field9=>"blabla1" }, {:field8=>"value2", :title=>"TheTitle2", :field9=>"blabla2"]}, :exception_code=>"1", :exception_context=>nil}, :@xmlns=>"http://mylink.com/webservice"}}Same but presented differently
{:field1=>
{:field2=>
{:field5=>true, :field6=>"@uri", :field3=>
{:field7=>
{:field8=>"value1", :title=>"TheTitle1", :field9=>"blabla1"}},
:exception_code=>"1", :exception_context=>nil}, :@xmlns=>"http://mylink.com/webservice"}}{:field1=>
{:field2=>
{:field5=>true, :field6=>"@uri", :field3=>
{:field7=>[
{:field8=>"Value1", :title=>"TheTitle1", :field9=>"blabla1"},
{:field8=>"value2", :title=>"TheTitle2", :field9=>"blabla2"]},
:exception_code=>"1", :exception_context=>nil}, :@xmlns=>"http://mylink.com/webservice"}}How could I get it to work - I mean asking for more than 1 result and get only the field I want from all the results ?
Thanks !
Last edited by badabing_can (2012-02-29 14:38:30)