我在模型上使用 Rails 3 to_xml并带有一些选项,例如 include、except 和方法。所以这不是我第一次使用to_xml。
我正在做这样的事情:
to_xml(include: {
order: {
methods: [:my_avg],
except: [:this_attr, :and_this_attr ]
},
customer: {}
})
XML 结果:
<?xml version="1.0" encoding="UTF-8"?>
<my-model>
<attr1 type="integer">12</attr1>
<attr2 type="integer">12</attr2>
<order>
<name>foo</name>
<desc>bar</desc>
<my-avg>
<avg type="integer">123</avg>
<foo>ok</foo>
</my-avg>
</order>
<updated-at type="datetime">2014-04-14T11:16:56-03:00</updated-at>
</my-model>
但现在我想更改 xml 编码 ISO_8859_1 而不是 utf8。
我还没有看到 ActiveRecord::Serialization 模块上的编码选项。
如果我只是添加一个编码选项,它会创建一个 XML 属性,而不是更改生成此 XML 的编码:
<?xml version="1.0" encoding="UTF-8"?>
<my-model>
<attr1 type="integer" encoding="ISO-8859-1">12</attr1>
<attr2 type="integer" encoding="ISO-8859-1">12</attr2>
<order>
<name>foo</name>
<desc>bar</desc>
<my-avg>
<avg type="integer">123</avg>
<foo>ok</foo>
</my-avg>
</order>
<updated-at type="datetime">2014-04-14T11:16:56-03:00</updated-at>
</my-model>
有没有办法使用 ActiveRecord 的 to_xml 指定编码?