ruby-on-rails - 如何从 format.xml 中删除 <hash></hash>

标签 ruby-on-rails ruby ruby-on-rails-3.1

我有一个对象has_many应呈现为 xml 的子对象。这不是问题。我的问题是我创建了一个 Hash包含此数据,就像解析器需要它一样。但是 rails 自动将整个文件包含在

<hash>
    <objects type="array">
        <object>
           ...
           ...
           ...
        </object>
    </objects>
</hash>

我需要摆脱 type="array"<hash>我该如何处理?我没有在文档中找到任何内容。

最佳答案

我遇到了同样的问题;

这是我的 XML:

<?xml version="1.0" encoding="UTF-8"?>
<Contacts>
  <Contact type="array">
  </Contact>
</Contacts>

我在用这个:

entries.to_xml

将散列数据转换为 XML,但这会将条目的数据包装到 <hash></hash>

所以我修改了:

entries.to_xml(root: "Contacts")

但这仍然将转换后的 XML 包装在“联系人”中,将我的 XML 代码修改为

<Contacts>
 <Contacts>
  <Contact type="array">
   <Contact>
    <Name></Name>
    <Email></Email>
    <Phone></Phone>
   </Contact>
  </Contact>
 </Contacts>
</Contacts>

所以它添加了一个我不想要的额外 ROOT。

现在对我有用的解决方案是:

 entries["Contacts"].to_xml(root: "Contacts")

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

关于ruby-on-rails - 如何从 format.xml 中删除 <hash></hash>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8819482/

相关文章:

ruby-on-rails - RSpec 和 rails : Stub @virtual_path for translation helper to test an application helper

ruby 正则表达式 : match and get position(s) of

iPhone Web 应用程序 - 不记得登录

ruby-on-rails-3 - 带有延迟作业的 rails carrierwave backgrounder 需要太多时间来上传

ruby-on-rails - 如何拯救异常中央和 DRY?

ruby-on-rails - 无法在 Ruby on Rails 中创建以 Bootstrap 为主题的脚手架

ruby-on-rails - Rails -- 可以在通用 rake 任务中运行迁移方法吗?

android - 在 Rails 中处理来自 Android 的 JSON 数组

ruby - 使用 Sinatra session 和 Rack::Session::EncryptedCookie 的 cookie 内容差异

ruby-on-rails - 从您自己的 gem 创建路由条目