Rails конвертирует хеш с массивом to_xml без тегов, окружающих массив - PullRequest
0 голосов
/ 28 мая 2018

У меня есть хеш, содержащий массив, вложенный в несколько уровней:

hash = {
    Sender_Name: "Bob",
    Consignement: {
         Load_Type: "FCL",
         JobContainer: [
             {c_number: "123"}, {c_number: 456}
         ]
    }
}

И я хочу преобразовать его в xml, используя to_xml.Самое близкое, что я могу получить к тому, что я хочу, это

hash.to_xml(skip_instruct: true, skip_types: true, root: "Consolidation2")

, что дает мне:

<Consolidation2>
    <Sender-Name>Bob</Sender-Name>
    <Consignement>
        <Load-Type>FCL</Load-Type>
        <JobContainer>
            <JobContainer>
                <c-number>123</c-number>
            </JobContainer>
            <JobContainer>
                 <c-number>456</c-number>
            </JobContainer>
        </JobContainer>
    </Consignement>
</Consolidation2>

Но массив JobContainer обернут в дополнительный тег.Как я могу получить его для вывода этого (без дополнительного тега JobContainer, обертывающего массив):

<Consolidation2>
    <Sender-Name>Bob</Sender-Name>
    <Consignement>
        <Load-Type>FCL</Load-Type>
        <JobContainer>
            <c-number>123</c-number>
        </JobContainer>
        <JobContainer>
             <c-number>456</c-number>
        </JobContainer>
    </Consignement>
</Consolidation2>

Обновление 29 мая 18:

Я закончил с предложением из этого сообщение , которое дало мне то, что я хотел.

1 Ответ

0 голосов
/ 28 мая 2018

Я предлагаю вам попробовать xml-simple драгоценный камень .Я не понял, какой именно вывод ожидаю, но вот результат:

require 'xmlsimple'
=> true
XmlSimple.xml_out(hash, root_name: "Consolidation2")
=> <Consolidation2 Sender_Name="Bob">
     <Consignement Load_Type="FCL">
       <JobContainer c_number="123" />
       <JobContainer c_number="456" />
     </Consignement>
   </Consolidation2>

Вы также можете посмотреть документацию для получения дополнительных опций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...