Rake任务使用nogokiri获取XML流并将选定的字段写入DB

时间:2010-02-01 12:46:42

标签: xml rake nokogiri database

我正在尝试构建rake任务,获取产品Feed并将其添加到我的数据库中。

task :testme => :environment do
require 'nokogiri'
require 'zlib'
require 'open-uri'


  @url = "http://some_url/filename.xml.gz"
  @source = open((@url), :http_basic_authentication=>[USERID, "PASSWORD"])
  @gz = Zlib::GzipReader.new(@source)
  @result = @gz.read
  @doc = Nokogiri::XML(@result)

  @doc.xpath("//product").each do |item|
    Product.create(:productname => product.css("name").text)
  end

end

所以这个工作正常,直到

@doc = Nokogiri::XML(@result)

会抛出一个rake错误

File name too long (repeating the content of xml- document)

这真的令人困惑,因为我在一个模型中开发并测试了它,在那里我可以读取,解压缩并搜索文件,然后用put编写所需的字段。

你有什么想法吗?

干杯,

缬氨酸

1 个答案:

答案 0 :(得分:0)

知道了:

require 'rubygems'

失踪了。