Ruby rake不会创建XML文件
我在这里有点不明白为什么我的Ruby rake不会创建XML文件,ruby,file-io,nokogiri,builder,Ruby,File Io,Nokogiri,Builder,我在这里有点不明白为什么我的rake任务不会创建所需的XML文件,但是当我在.rb文件中使用build\u XML方法时,它工作得很好 require 'rubygems' require 'nokogiri' require 'open-uri' namespace :xml do desc "xml build test" task :xml_build => :environment do build_xml end end def build_
rake
任务不会创建所需的XML文件,但是当我在.rb
文件中使用build\u XML
方法时,它工作得很好
require 'rubygems'
require 'nokogiri'
require 'open-uri'
namespace :xml do
desc "xml build test"
task :xml_build => :environment do
build_xml
end
end
def build_xml
# build xml docoument
builder = Nokogiri::XML::Builder.new do |xml|
xml.root {
xml.location {
xml.value "test"
}
}
end
File.open("test.xml", 'w') {|f| f.write(builder.to_xml) }
end
当我使用
rakexml:xml\u build
执行您的rakefile时,我得到一个错误,任务环境
未定义。如果我将environment
作为xml\u build
的依赖项删除,然后再次运行它,它将正常工作并创建xml文件
因此,我猜想您的环境任务会导致错误,并且xml_build永远不会运行(或者该任务也不存在于您真正的rakefile中,所以只需将其作为依赖项删除即可)。您说的“不会”是什么意思?什么是您不期望的错误或结果?脚本似乎工作正常,xml显示在屏幕上,跟踪显示没有错误。然而test.xml文件并不是按照file.open(“test.xml”,“w”){| f | f.write(builder.to_xml)}创建的。事实上,他可能是从rails项目中复制了这个Rakefile代码(在该项目中,
environment
将为您定义),但现在没有在其中运行它。另外,没什么大不了的,但是这个脚本不需要open uri
:)我已经删除了环境依赖项,脚本输出xml到screen ok,但是test.xml仍然没有创建。当作为rake任务运行脚本时,可能是文件权限问题吗?同样,当我在.rb文件中有代码片段时,同一个脚本成功地创建了test.xml文件。好的,我已经解决了这个问题。open文件(“test.xml”,“w”)不起作用,我必须包含test.xml的完整路径。我的rake环境可能没有设置。