2012-08-22 15 views
14

Ich benutze Rubyzip, um eine CSV-Datei zu zippen, damit sie es herunterladen können. Dies funktioniert perfekt im Entwicklungsmodus. Aber als ich versuchte, die Datei auf den Produktionsserver (Rackspace) zu zippen, erhielt ich den Fehler: LoadError (kann solche Datei nicht laden - zip/zip). Ist es ein Pfadproblem? Weiß jemand eine Lösung? require ‚zip/zip‘Rails 3 - LoadError (kann solche Datei nicht laden - zip/zip)

Ich habe versucht, die Lösung von here, aber es half nicht:

Der Fehler wird in meinem Code auf dieser Linie genannt.

+0

nicht mit dieser Frage verbunden, aber falls jemand das gleiche Problem wie ich hat - bei Versionen> 1.0 sollten Sie 'require 'zip'nicht' zip/zip 'benötigen – kaczor1984

Antwort

3

Ich hatte das gleiche Problem: Fehler auf "require 'Zip/Zip" Code, und die Lösung von this post auch nicht geholfen.

Nach langer Forschung fand ich, dass das Problem war, dass mein „require‚zip/zip‘“ Anweisung in einer separaten

lib/exporters/package_exporter.rb 

Datei, und aus irgendeinem Grunde „require“ Aussagen nicht behandelt getan werden im Ordner "lib" in der Produktion standardmäßig.

Als ich bewegt "require 'zip/zip'" zu Beginn meiner

app/controllers/packages_controller.rb 

das Problem gelöst wurde!

+0

Können Sie mir ein Beispiel zeigen? Ich habe das gleiche Problem und kann es überhaupt nicht beheben. –

5

hatte ich ein ähnliches Problem mit active_support, sondern nur das 'zip' Juwel meiner Gemfile hinzugefügt und es funktionierte

29

ich dieses Problem durch Angabe gem Version 0.9.9 in Gemfile feines Fest:

gem 'rubyzip', "~> 0.9.9" 

Die Verwendung von rubyzip (1.0.0) verursachte einen Fehler.

+12

Oder Sie können auch 'gem 'zip-zip' hinzufügen, die Abwärtskompatibilität bietet. – baxang

18

Wenn Sie Rubyzip auf 1.0.0 aktualisieren, ändern Sie require 'zip/zip' in require 'zip'.

+1

Ich denke, das ist der Gewinner – Arcolye

0

In ihrem github page erklärt, was zu tun ist.

Rubyzip-Schnittstelle geändert !!! Keine Notwendigkeit, zu verlangen, "Zip/Zip" und Zip Präfix in Klassennamen entfernt.

Wenn Sie Probleme mit Drittanbietern, Edelsteine ​​haben, was erforderlich alt Version von rubyzip Sie nächste Abhilfe verwenden können:

gem 'rubyzip', '>= 1.0.0' # will load new rubyzip version 
gem 'zip-zip' # will load compatibility for old rubyzip API. 
2

Ich bin Gebrauch rubyzip2 Juwel dieses Problem

gem 'rubyzip2' 
zu beheben
6

Ich hatte dieses Problem nach dem Hinzufügen von Roo zu einem Rails-Projekt.

Roo brauchte die neue Schnittstelle, etwas anderes (ein anderes Juwel) benutzte die alte Schnittstelle - so die meisten dieser Antworten nicht funktioniert (konnte die Version von Rubyzip nicht senken, rubyzip2 ist veraltet, hatte nicht benötige zip/zip in meinem Projekt).

Was für mich funktionierte, war cassio-s-cabrals Antwort auf die rubyzip github Seite.

 
gem 'rubyzip', '>= 1.0.0' # will load new rubyzip version 
gem 'zip-zip' # will load compatibility for old rubyzip API. 
2

was Arbeit für mich war 2 Edelstein zu installieren:
gem install rubyzip gem install zip und im Skript put
require 'rubygems' require 'zip/zip'

Verwandte Themen