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

gibt Fehler in Datei: undefined method < < 'für nil: NilClass`nicht in der Lage zu schreiben, in rubin

warum kann ich nicht auf diese Weise schreiben einreichen?

Antwort

0

Versuchen Sie folgendes:

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

Der Fehler Sie sagt Ihnen bekommen, dass @out nicht richtig initialisiert wird. Der sicherste Weg, um das zu tun, was Sie zu tun versuchen, ist die Instanz Variable @out im Konstruktor zu initialisieren, also die initialize Methode.

Noch besser wäre es natürlich, den Namen der Ausgabedatei an den Konstruktor zu übergeben, anstatt ihn hart zu codieren.