1

I'm using Savon gem to connect with a SOAP service. My problem is that I need to send an array of items with different attribute on each key.

I have looked this and this

What I'm trying to get as XML is:

<Order>
  <OrderItems>
    <OrderItem code="AJF">
      <Quantity>1</Quantity>
    </OrderItem>
    <OrderItem code="BUD">
      <Quantity>1</Quantity>
    </OrderItem>
  </OrderItems>
</Order>

What I'm sending as message is:

{Order: {
  OrderItems: {
    OrderItem: [{
      Quantity: 1,
      attributes!: { code: "AJF"}
    },{
      Quantity: 1,
      attributes!: { code: "BUD"}
    }]
  }
}}

What I'm getting is:

<Order>
  <OrderItems>
    <OrderItem>
      <Quantity>1</Quantity>
    </OrderItem>
    <OrderItem>
      <Quantity>1</Quantity>
    </OrderItem>
  </OrderItems>
</Order>

I've searched it but haven't found anything.

Any ideas?

Thanks!

Community
  • 1
  • 1
Bastian E.
  • 408
  • 2
  • 11

1 Answers1

1

Finally I found this answer.

The hash has to be like this:

{Order: {
  OrderItems: {
    OrderItem: [{
      Quantity: 1,
      :'@code' => "AJF"}
    },{
      Quantity: 1,
      :'@code' => "BUD"}
    }]
  }
}}
Community
  • 1
  • 1
Bastian E.
  • 408
  • 2
  • 11