【问题标题】:rails xml to active record objectrails xml 到活动记录对象
【发布时间】:2011-02-17 21:11:39
【问题描述】:

我已经在谷歌上搜索了一段时间以尝试将传入的 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?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails xml serialization activerecord


    【解决方案1】:

    我用头撞了一会儿。似乎没有多少可以将 XML 映射到 ActiveRecord 对象而不手动进行。虽然我的需求与您的相似,但我还需要不仅做一个有关系的对象,我还需要做很多。我找了很多地方都找不到。我决定自己解决它,但意识到它不会是一个单行,所以写了一个扩展 ActiveRecord 的 gem。我基于韦恩·罗宾逊的作品:

    http://www.wayne-robinson.com/journal/2006/5/1/ruby-on-rails-activerecordbuild_from_xml-function.html

    在我不存在的业余时间几个月后,我完成了我的 gem,你可以在 RubyGems 上查看:https://rubygems.org/gems/xml_active

    希望这会有所帮助:) 干杯,

    迈克尔

    更新

    xml_active 现已正式退役,现在的开发重点是 data_active(请参阅https://github.com/michael-harrison/data_active),它具有 xml_active 的功能,但在未来的版本中,我将努力支持其他格式

    【讨论】:

    • 只是一个快速的.. 你做了什么来扩展韦恩的工作?
    • @daveatflow,xml_active(现在的 data_active)是基于 Wayne 的工作来检查模型依赖关系然后创建对象内存。 gem 下一步将新对象提交到数据库。它还为韦恩的工作只真正处理 has_many 关联的 has_one 关联提供支持。简而言之,他的工作启发了我打造这颗宝石,不仅可以解决我自己的问题,还可以帮助其他人。我认为我给他的荣誉很合适;)
    【解决方案2】:
    猜你喜欢
    • 2013-03-26
    • 1970-01-01
    • 2015-01-04
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多