我这样做了:
[User.first, User.last].to_xml
得到了这个:
<users type="array">
<user>
<created-at type="datetime">2010-03-16T06:40:51Z</created-at>
<id type="integer">3</id>
<password-hash></password-hash>
<salt></salt>
<updated-at type="datetime">2010-03-16T06:40:51Z</updated-at>
<username nil="true"></username>
</user>
<user>
<created-at type="datetime">2010-03-23T03:58:15Z</created-at>
<id type="integer">7</id>
<password-hash></password-hash>
<salt></salt>
<tutorial-state nil="true"></tutorial-state>
<updated-at type="datetime">2010-03-23T03:58:15Z</updated-at>
<username nil="true"></username>
</user>
</users>
如何获取xml的字符串并将其反转以获取原始的activerecord对象?
答案 0 :(得分:4)
试试这个:
模型对象xml:
xml = User.first.to_xml
User.new(Hash.from_xml(xml))
模型xml数组:
xml = User.all.to_xml
users = (Hash.from_xml(xml)["users"] || []).collect{|attr| User.new(attr)}
答案 1 :(得分:0)
我知道知道您可以对个人用户执行此操作;在数组上执行此操作将需要您自己的XML解析。
user = User.new
user.from_xml '<user><id type="integer">1</id></user>'