Ruby on rails 如何使用Rails生成XML?

Ruby on rails 如何使用Rails生成XML?,ruby-on-rails,ruby,xml,Ruby On Rails,Ruby,Xml,我需要创建一个XML文件输出,如下所示: <data> <hour>0</hour> <count>8</count> </data> . . <data> <hour>23</hour> <count>1</count> </data> 但输出结果如下所示: tweet-densities-controller

我需要创建一个XML文件输出,如下所示:

<data>
    <hour>0</hour>
    <count>8</count>
</data>
.
.
<data>
    <hour>23</hour>
    <count>1</count>
</data>
但输出结果如下所示:

    tweet-densities-controller-data type="array">
    <tweet-densities-controller-datum type="TweetDensitiesController::Datum">#
    TweetDensitiesController::Datum:0xacbddc4></tweet-densities-controller-datum>
tweet控制器数据类型=“数组”>
#
TweetDensitiesController::数据:0xacbddc4>

您可能想看看生成器:

这里发生的事情是,当您执行
渲染时:xml=>@data
Rails正在尝试将
@data
(一个数组)转换为其xml表示形式。在这种情况下,这不是你想要的

在数据类上定义一个
#to_xml
方法,然后可以执行以下操作:

@data.map(&:to_xml).join("\n")
它将为每个对象调用
#to_xml
方法,然后将它们连接起来,用换行符分隔每个条目

如果您想要结构良好的XML数据(在您的示例中似乎不是这样),那么应该使用jessecurry建议的类似于Builder的东西

@data.map(&:to_xml).join("\n")