使用acts_as_api属性格式化xml

时间:2013-10-14 08:34:23

标签: ruby-on-rails rest activemodel

我对acts_as_api有疑问。 我想格式化一个xml字符串,如下所示:

<root>
  <child property="property_value">Some Text</child>
  etc
</root>

这可能吗?

提前谢谢

2 个答案:

答案 0 :(得分:1)

acts_as_api的预期用途是使用键值对。

如果你想通过混合内容和结构来打破这种约定,你可能最好在不使用库支持的情况下创建自己的xml。

你能做什么,但我认为这不是一个好主意,就是将一次调用的结果发送到你的root标签的act_as_api值。

您可以重复使用子模型的acts_as_api行为。

答案 1 :(得分:1)

我认为这不会自动运行,因为您希望将数据放在XML结构中的两个不同的位置:

  • 节点的属性
  • 节点的内容

但是模型的属性包含一个Hash。 acts_as_api(或其他序列化程序)无法确定属性应该属于哪个属性,哪个属性应该作为内部文本。

对于这种情况,您必须提供自己的序列化程序(您可以查看http://api.rubyonrails.org/classes/ActiveRecord/Serialization.html#method-i-to_xml如何在Rails中执行此操作。