我不理解那些喜欢Savon而不是Soap4r的人。
如何在Savon响应中获取返回对象的属性?使用soap4r,它就像调用getter一样干净!
显然,在Savon中,我需要显式解析响应并遍历response_hash。这比soap4r方法更糟糕。是我做错了什么,还是Savon只是质量更差的肥皂?
编辑:这个问题是由于savon没有正确地支持multi_ref响应,正如回答评论中所说的那样。
来源https://github.com/raldred/savon/blob/master/lib/savon/response.rb
# You can also let Savon translate the SOAP response body to a Hash.
#
# response.to_hash
# => { :findUserByIdResponse => {
# => :id => "123",
# => :username => "eve"
# => :active => true
# => }
所以您应该能够调用hash[:object],它将返回attribute。
您不需要遍历响应对象,只需调用to_hash即可。