Rails呈现Xml

HXH*_*HXH 0 xml ruby-on-rails

在我的Rails应用程序中,我运行以下操作:

def test  
    data={:student=>{:name=>'hxh',:age=>12}}
    render xml: data 
end
Run Code Online (Sandbox Code Playgroud)

我有

<hash slick-uniqueid="3">
  <div>
    <a id="slick_uniqueid"/>
  </div>
  <student>
    <name>hxh</name>
    <age type="integer">12</age>
  </student>
</hash>
Run Code Online (Sandbox Code Playgroud)

但我只想要:

<student>
    <name>hxh</name>
    <age type="integer">12</age>
 </student> 
Run Code Online (Sandbox Code Playgroud)

我该怎么认识到这一点?

小智 5

在控制台中玩了几分钟后,我可以给你这个解决方案:

将哈希设置为:

data = {:name=>'hxh',:age=>12}
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用:root选项指定根目录:

data.to_xml(root: "student")
Run Code Online (Sandbox Code Playgroud)

这将产生以下结果:

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<student>
    <name>hxh</name>
    <age type=\"integer\">12</age>
</student>
Run Code Online (Sandbox Code Playgroud)

您还可以添加此选项:skip_instruct => true以摆脱第一行.

另请阅读此处文档.