如何轻松地将XML导入rails(activerecord)数据库

时间:2014-05-23 21:36:33

标签: ruby-on-rails ruby activerecord ruby-on-rails-4

寻找有关将xml文档导入rails的模块和文档。

我希望能够.do.is有一个持久的目录来放入xml.files。文件将是相同的xml结构。我希望文件能够轻松或自动更新到数据库中。

我可以使用activercord在rails上使用ruby吗?

1 个答案:

答案 0 :(得分:2)

<强> 1。何时/如何执行流程:

与DB同步文件并退出

的Rake任务

创建一个rake任务,扫描持久目录并更新数据库。 rake任务可以手动执行,也可以作为cron作业添加到系统中。您可以通过使用task :sync => :environment do声明任务来加载rails环境。

持续运行的Rake任务 您可以使用listen之类的gem来检测此目录的文件更改并将它们同步到数据库。或者你的佣金任务可以在内部睡几分钟。您还可以通过创建upstart job来使此任务成为系统服务。

后台职位库

使用resque和[{3}}等作业库。

<强> 2。代码结构

我建议rake任务/后台作业仅作为启动同步过程的机制。您的实际同步逻辑/代码应该仍然在正常的ruby类/模块中。

第3。如何执行xml - &gt; db sync

如果您可以指示xml的外观,我建议使用activerecord resque-schedulerto_xml来导出/创建/更新或查看它们在内部执行的操作(attributes = method)。

如果您无法指定格式,请使用from_xml中提到的nokogiri或xmlsimple来解析xml文件。然后使用正常的活动记录查询/创建/更新方法来更新数据库。使用activerecord验证可确保数据在数据库中始终保持一致。如果要确保没有人可以使用其他数据库连接器(非活动记录)插入无效数据,则可以使用this post