寻找有关将xml文档导入rails的模块和文档。
我希望能够.do.is有一个持久的目录来放入xml.files。文件将是相同的xml结构。我希望文件能够轻松或自动更新到数据库中。
我可以使用activercord在rails上使用ruby吗?
答案 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-scheduler和to_xml来导出/创建/更新或查看它们在内部执行的操作(attributes = method)。
如果您无法指定格式,请使用from_xml中提到的nokogiri或xmlsimple来解析xml文件。然后使用正常的活动记录查询/创建/更新方法来更新数据库。使用activerecord验证可确保数据在数据库中始终保持一致。如果要确保没有人可以使用其他数据库连接器(非活动记录)插入无效数据,则可以使用this post。