无法在ruby中写入文件

时间:2010-12-27 03:16:21

标签: ruby file-io

class PostCallbacks < XML::SAX::Document
  test = "";
  out = File.open("output.txt","w");
  def start_element(element = "", attributes = [])
      @out << element
  end
end

给出错误:undefined method&lt;&lt;'为零:NilClass`

为什么我不能这样写文件?

1 个答案:

答案 0 :(得分:0)

试试这个:

class PostCallbacks < XML::SAX::Document
  test = "";
  def initialize
    @out = File.open("output.txt","w");
  end
  def start_element(element = "", attributes = [])
    @out << element
  end
end

您收到的错误告诉您@out未正确初始化。执行您尝试执行的操作的最安全方法是在构造函数中初始化实例变量@out,也就是说,initialize方法。

当然,更好的方法是将输出文件的名称传递给构造函数,而不是硬编码。