0

我正在尝试让我的 rails 应用程序以某种格式生成 XML 文件,到目前为止,我已经让应用程序使用

format.xml { render xml:  @agencies }

产生

<agencies type="array">
<agency>
<address>12 dansu ct</address>
<created-at type="datetime">2013-09-17T14:03:11Z</created-at>
<email>t@t.com</email>
<id type="integer">1</id>
<imageBgUrl>another.jpg</imageBgUrl>
<imageThumbUrl>image.jpg</imageThumbUrl>
<latitude type="float">12.4</latitude>
<longitude type="float">12.43</longitude>
<telNo>94959525</telNo>
<title>Paul</title>
<updated-at type="datetime">2013-09-17T14:03:11Z</updated-at>
<zipCode>3210</zipCode>
</agency>
</agencies>

虽然我需要它看起来像

<?xml version="1.0" encoding="UTF-8"?>
<entries type="array">
    <entry>
        <address>12 dansu ct</address>
        <created-at type="datetime">2013-09-17T14:03:11Z</created-at>
        <email>t@t.com</email>
        <id type="integer">1</id>
        <imageBgUrl>another.jpg</imageBgUrl>
        <imageThumbUrl>image.jpg</imageThumbUrl>
        <latitude>37.784062</latitude>
        <longitude>122.391579</longitude>
        <telNo>94959525</telNo>
        <title>Paul</title>
        <updated-at type="datetime">2013-09-17T14:03:11Z</updated-at>
        <zipCode>3210</zipCode>
    </entry>
</entries>
4

2 回答 2

1

您可以使用 Rabl 之类的模板引擎创建index.xml.erb要渲染的文件。

就像是:

<?xml version="1.0" encoding="UTF-8"?>
<entries type="array">
    <%= render collection: @agencies, partial: 'agency', format: :xml %>
</entries>

可能需要验证我的语法...

于 2013-09-17T14:56:27.003 回答
0

你在使用XML Builder吗?

这是一个如何使用它的例子:

  require 'rubygems'
  require_gem 'builder'

  builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
  builder.person { |b| b.name("Jim"); b.phone("555-1234") }
  #
  # Prints:
  # <person>
  #   <name>Jim</name>
  #   <phone>555-1234</phone>
  # </person>
于 2013-09-17T15:00:30.523 回答