1
我得到一個錯誤從零到字符串
ruby/2.1.0/open-uri.rb:36:in `open': no implicit conversion of nil into String (TypeError)
這裏@filename
,@directory
和@xmlFile
都沒有隱含converson有String
作爲類的類型,如果我打印出來。 但不知何故仍在eval_script
上面的錯誤被拋出。我不承認爲什麼?
def execute
...
@result = eval_script(@filename,@xmlFile,@directory)
end
def eval_script filename,xml,directory
proc = Proc.new{}
eval(File.read(filename),proc.binding, filename)
end
編輯: 1)執行的方法是我的導軌動作控制器的方法。
腳本:
# encoding: UTF-8
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::XML(open(ARGV.first))
path = ARGV[1]
print path
File.delete(path + "/testOut.txt") if File.exist?(path + "/testOut.txt")
file = File.open(path + "/testOut.txt", 'w')
doc.css('testcases').each { |node| file.write "#{node['name']}\n" if node.css('results[test="testOut"]').any? }
我想這個錯誤可能在你正在嘗試評估的文件filename中。你可以驗證'filename'運行正常嗎?你也沒有在方法'eval_script'中使用'xml'參數。 – Rashmirathi
@Rashmirathi:帶路徑的文件名是正確的。我可以通過在運行窗口中打開該文件(我正在使用Windows)2)它通過proc.binding接受輸入,因此我認爲它不需要提及參數。 – InQusitive
問題很可能出現在您要評估的腳本中,而不是您在郵件中發佈的代碼中。 您可以向我們展示@filename – SteveTurczyn