Ruby Hash & Array to xml - PullRequest
       16

Ruby Hash & Array to xml

1 голос
/ 01 февраля 2010

Я использую to_xml ActiveSupport для генерации некоторого xml из хеша.

Мне нужен этот рубин:

:Shipment => {
  :Packages => [
    {:weight => '5', :type => 'box'},
    {:weight => '3', :type => 'tube'}
  ]
}

Чтобы сгенерировать этот xml:

<Shipment>
  <Package>
    <weight>5</weight>
    <type>box</type>
  </Package>
  <Package>
    <weight>3</weight>
    <type>tube</type>
  </Package>
</Shipment>

Но вместо этого он оборачивает массив в другой набор тегов xml следующим образом:

<Shipment>
  <Packages>
    <Package>
      <weight>5</weight>
      <type>box</type>
    </Package>
    <Package>
      <weight>3</weight>
      <type>tube</type>
    </Package>
  </Packages>
</Shipment>

Пожалуйста, не говорите мне, что мне нужно изменить мою структуру XML ... Это так, как UPS говорит сделать это: (

Кто-нибудь знает обходной путь?

1 Ответ

4 голосов
/ 01 февраля 2010

Проверка строитель это путь. Ваш xml.builder будет выглядеть примерно так:

xml.shipment do
    @packages.each do |package|
        xml.package do
            xml.weight package.weight
            xml.type package.type
        end
    end
end
...