направляет xml к объекту активной записи - PullRequest
5 голосов
/ 11 мая 2010

Я некоторое время гуглял, пытаясь преобразовать и входящий XML-запрос в активный объект записи. Я пытался использовать метод ActiveRecordObject.new.from_xml, но, похоже, он не обрабатывает отношения.

Например, скажем, у меня есть следующий xml:

<blog>
  <title></title>
  <blog-pages>
    <blog-page>
      <page-number></page-number>
      <content></content>
    </blog-page>
  </blog-pages>
</blog>

А у меня есть следующие модельные объекты:

class Blog < ActiveRecord::Base
    has_many :blog_pages

end

class BlogPage < ActiveRecord::Base
    belongs_to :blog

end

Есть ли способ конвертировать xml в объект блога С отношениями? Или мне нужно вручную разобрать XML?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Я ударился головой об это некоторое время. Кажется, что не так уж много можно сопоставить XML с объектами ActiveRecord, не делая это вручную. Хотя мои потребности были схожи с вашими, мне нужно было также не просто делать один объект с отношениями, мне нужно было делать много. Я смотрел во многих местах и ​​не мог ничего найти. Я решил решить это сам, но понял, что это не будет один лайнер, поэтому написал гем, который расширил ActiveRecord. Я основан на работе Уэйна Робинсона:

http://www.wayne -robinson.com / журнал / 2006 / 5/1 / рубин-на-рельсы-activerecordbuild_from_xml-function.html

После нескольких месяцев моего несуществующего свободного времени я закончил свой драгоценный камень, и вы можете проверить на RubyGems: https://rubygems.org/gems/xml_active

Надеюсь, это поможет :) Cheers,

Michael

UPDATE

xml_active теперь официально удален, и разработка теперь сосредоточена на data_active (см. https://github.com/michael-harrison/data_active), который имеет функциональность xml_active, но в будущих выпусках я буду работать для поддержки других форматов

0 голосов
/ 11 мая 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...