рельсы инвертируют to_xml и получают оригинальную модель - PullRequest
0 голосов
/ 24 марта 2010

Я сделал это:

[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?

Ответы [ 2 ]

4 голосов
/ 24 марта 2010

Попробуйте это:

Объект модели 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)}
0 голосов
/ 24 марта 2010

Я до знаю, что вы можете сделать это на отдельных пользователей; выполнение этого в массиве потребует вашего собственного разбора XML.

user = User.new
user.from_xml '<user><id type="integer">1</id></user>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...