2

RailsとActiveResourceを使用して、サードパーティのAPIから非RailsスタイルのXML応答を取得しています。マップしたいオブジェクトは基本的にprestahop要素でラップされています。オブジェクトを正しくマップするためにその要素を取り除くには、何をオーバーライドする必要がありますか?

<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<order>
    <id></id> 
4

2 に答える 2

2

ニーズに合わせてカスタムフォーマッターを使用する必要があります。このようなものが良い解決策になる可能性があります。

class PrestaXMLFormatter
  include ActiveResource::Formats::XmlFormat

  def decode(xml)
    ActiveResource::Formats::XmlFormat.decode(xml)['prestashop']
  end
end

class Order < ActiveResource::Base
  self.format = PrestaXMLFormatter.new
end  
于 2012-11-06T10:52:39.297 に答える
0

Rails以外のスタイルのAPIを使用する必要がある外部サービスがいくつかあります。SOAP リクエストを作成して SOAP レスポンスを解析するSavon gem と、実際の XML を ruby​​ オブジェクトにマップするRoxml gemを組み合わせて使用​​しています。

于 2013-07-10T16:35:02.393 に答える