2016-06-22 11 views
0

Zunächst habe ich Zipruby Gem und Upgrade der Rails-Umgebung verwendet und versuchen, Rubyzip zu wechseln. dann, was wird das Äquivalent sein.nicht initialisierte Konstante Zip :: Archiv

Gebrauchte Juwel in gem Datei - gem 'rubyzip', gem 'nokogiri', Schienen-4.1.9, Rubin -2,2

Zip::Archive.open("#{@docx_file.path}") do |dest| 
    n = dest.num_files 
    n.times do |i| 
     case dest.get_name(i) 
     when 'word/document.xml' 
      dest.replace_buffer i, @docx[:template].to_xml 
     else 
      # 
     end 
    end 
end 

Ausgabe -uninitialized Konstante Zip :: Archiv

Antwort

3

Nach die README file des Rubyzip Gem, die richtige Klasse zu verwenden ist Zip::File. Sie können eine ZIP-Datei mithilfe von

Zip::File.open('foo.zip') do |zip_file| 
    # Handle entries one by one 
    zip_file.each do |entry| 
    # Extract to file/directory/symlink 
    puts "Extracting #{entry.name}" 
    entry.extract(dest_file) 

    # Read into memory 
    content = entry.get_input_stream.read 
    end 

    # Find specific entry 
    entry = zip_file.glob('*.csv').first 
    puts entry.get_input_stream.read 
end 

lesen. Lesen Sie die Dokumentation, die Ihnen zur Verfügung steht.

+0

Aus Interesse prüfte ich ältere Versionen des Edelsteins, um zu sehen, ob sich die API änderte. Aber 'Zip :: Archive' wurde * nie * vom Juwel definiert. –

+0

@holger es ist Arbeit und ich lese es bereits, aber ich bekomme kein erwartetes Ergebnis. anfangs habe ich zipruby gem verwendet und nun die umgebung von rails und ruby ​​upgraded, dann entscheide ich mich, rubyzip edel zu wechseln, habe aber schwierigkeiten beim bewegen. Ich habe meine Methode vollständig aktualisiert, die ich umwandeln muss. Überprüfen Sie es bitte und geben Sie mir genaue Lösung wenn möglich. –

+1

@ArvindRajput Die Antwort auf Ihre ursprüngliche (und geänderte) Frage ist immer noch dieselbe. Wenn Sie eine weitere Frage haben, fragen Sie bitte eine neue Frage. Bitte stellen Sie sicher, genau zu beschreiben, was Ihr Problem in dieser neuen Frage ist. Bitte lesen Sie http://StackOverflow.com/Help/Mcve, um eine gute Frage zu schreiben, die es Ihnen ermöglicht, Ihnen zu helfen. –