如何应对Savon的回应?

时间:2011-06-02 17:47:41

标签: ruby-on-rails ruby soap savon soap4r

我不理解喜欢Savon和Soap4r的人。

如何在Savon响应中获取返回对象的属性?使用soap4r它就像调用吸气剂一样干净!

显然,在Savon中,我需要显式地解析响应并遍历response_hash。这比soap4r方法更糟糕。我有什么不对劲,或者Savon只是质量较差的soap4r?

编辑:这个问题是由于savon没有正确支持multi_ref响应,如答案评论中所述。

1 个答案:

答案 0 :(得分:1)

来自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]来返回属性。

您只需要调用to_hash就不需要遍历响应对象。