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>如何处理?我在文档上找不到任何内容.
我有同样的问题;
这是我的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>或包含任何其他根.干杯!!
render :xml => @objects.to_xml(:root => :root_name, :skip_types => true)
Run Code Online (Sandbox Code Playgroud)