如何从format.xml中删除<hash> </ hash>

dav*_*idb 5 ruby ruby-on-rails ruby-on-rails-3.1

我有一个对象,has_many应该呈现为xml的子对象.这不是问题.我的问题是我创建了一个Hash包含这个数据的解析器需要的数据.但rails使用了atomaticly封装整个文件

<hash>
    <objects type="array">
        <object>
           ...
           ...
           ...
        </object>
    </objects>
</hash>
Run Code Online (Sandbox Code Playgroud)

我需要摆脱它,我type="array"<hash>如何处理?我在文档上找不到任何内容.

may*_*xit 7

我有同样的问题;

这是我的XML:

<?xml version="1.0" encoding="UTF-8"?>
<Contacts>
  <Contact type="array">
  </Contact>
</Contacts>
Run Code Online (Sandbox Code Playgroud)

我在用这个:

entries.to_xml
Run Code Online (Sandbox Code Playgroud)

将哈希数据转换为XML,但这会将条目的数据包装进去 <hash></hash>

所以我修改了:

entries.to_xml(root: "Contacts")
Run Code Online (Sandbox Code Playgroud)

但是仍然将转换后的XML包装在"Contacts"中修改我的XML代码

<Contacts>
 <Contacts>
  <Contact type="array">
   <Contact>
    <Name></Name>
    <Email></Email>
    <Phone></Phone>
   </Contact>
  </Contact>
 </Contacts>
</Contacts>
Run Code Online (Sandbox Code Playgroud)

所以它增加了额外的ROOT,我不会在那里.

现在解决这个问题的方法是:

 entries["Contacts"].to_xml(root: "Contacts")
Run Code Online (Sandbox Code Playgroud)

避免<hash></hash>或包含任何其他根.干杯!!


dav*_*idb 1

render :xml => @objects.to_xml(:root => :root_name, :skip_types => true)
Run Code Online (Sandbox Code Playgroud)