【发布时间】:2013-03-26 14:18:51
【问题描述】:
在将数据插入模型时,我正在寻找一些最佳实践,尤其是在要创建大量记录时,到目前为止,我正在检索一些 XML 并将其保存到模型中
doc = Nokogiri::XML.parse(open(url))
doc.xpath('//xmlns:feed/xmlns:entry[xmlns:title[node()]]').each do |s|
cid = s.xpath("xmlns:id").text
email = s.xpath("gd:email/@address").text
name = s.xpath("xmlns:title").text
data = Contact.new(
:cid => cid,
:email => email,
:name => name)
data.save
end
现在这是一条一条地插入记录,我认为这需要很长时间。
我读过一种解决方案是使用事务,或者我可以进行一次批量插入?我的问题是我将从哪一个中受益最多,我将如何重新格式化我已经拥有的每一个?在新设置中看到我当前设置的示例将使我受益,因为我将能够更多地理解它并从中实际学习
任何帮助表示赞赏
谢谢
【问题讨论】:
-
是的,但是这不应该被关闭,因为@JeffPaquette 为有问题的代码提供了一个工作示例,这与 GEM 提供的默认示例不同
-
您应该能够自己弄清楚。在我看来,它应该被关闭。这适用于您的特定情况不会对遇到相同问题的其他用户有任何额外的好处。对他们来说,最初的问题已经很清楚了。
-
我不确定所以我问的原因......你怎么能说它不会使任何其他用户受益,对你来说容易的事情对别人来说不一定容易
标签: ruby-on-rails ruby-on-rails-3 activerecord model transactions