ruby ​​auf rails roo gem kann zip / zipfilesystem nicht laden

8

Ich versuche, das Roo-Juwel zu verwenden, um .xlsx-Spreadsheets zu verarbeiten, die von einer externen Partei hochgeladen werden. Ich erhalte den folgenden Fehler:

LoadError (kann keine solche Datei laden - zip / zipfilesystem):

Ich habe viele ähnliche Fragen gefunden (z. B. kann ich solche Dateien nicht laden - zip / zip) und ich habe versucht, ihren Lösungen zu folgen. Bis jetzt, ohne Erfolg.

Ich habe ursprünglich 'roo' in der Steuerung benötigt, und nachdem ich diesen Fehler bekommen habe, wurde versucht, 'zip / zip', 'zip / zipfilesystem' und einfach 'zip' zu verwenden. Nichts davon scheint etwas zu reparieren. Ich habe auch versucht, hinzuzufügen: require = & gt; 'zip',: require = & gt; 'zip / zipfilesystem',: require = & gt; 'zip / zip' zum Gemfile, und nichts davon schien etwas zu ändern. Hier ist ein passender Code:

in Gemfile:

%Vor%

installierte Versionen:

%Vor%

im Controller:

%Vor%

Ich denke, dass diese Sache vor dem Erreichen des Modells (wo der process_spreadsheet () -Code ist) ausfällt, aber nur für den Fall, hier ist ein Modellcode:

%Vor%

Ich verwende Schienen 3.2.13 und Ruby 2.0.0p195.

Benötige ich irgendwo das Falsche (oder Falsche)? Lassen Sie mich wissen, ob andere Code-Snippets hilfreich wären. Thaaaaanks.

    
Deranger 06.09.2013, 13:55
quelle

3 Antworten

13

rubyzip v1.0.0 wurde am 29. August 2013 veröffentlicht: Ссылка

Dies ist eine neue Hauptversionsnummer, und mehr als ein Juwel oder Projekt, das davon abhängt, wurde durch den Bruch mit der Rückwärtskompatibilität abgefangen.

Am schnellsten funktioniert es, "wie funktioniert mein Code, wenn er funktioniert", um Gemfile reference auf rubyzip :

zu ändern %Vor%

Auf lange Sicht ist dies möglicherweise nicht die beste Lösung, es hängt davon ab, wie und / oder warum Sie rubyzip verwenden. Ich erwarte, dass einige Edelsteinverleger wie die Autoren von roo herausfinden müssen, wie man schön übergeht, damit ihre eigenen Benutzer nicht gleichzeitig die Anforderungen für inkompatible Versionen von rubyzip erfüllen.

Nur Meinung:

Dies in Aktion zu sehen, hat mich tatsächlich weniger zu einem Fan von semantischen Versionen von Ruby Gems gemacht. Wenn ich jemals mit der Rückwärtskompatibilität bei meinen eigenen Projekten aufbricht, denke ich, dass ich einfach ein neues Juwel beginnen und eine Notiz über das alte Juwel machen werde.

    
Neil Slater 06.09.2013, 14:41
quelle
11

Fügen Sie Ihrem Projekt den zip-zip Edelstein hinzu. Es bietet einen einfachen Adapter für Ihre Abhängigkeiten mit der RubyZip v0.9.9 Schnittstelle, mit der Sie auf RubyZip v1.0.0 upgraden können.

    
orien 21.09.2013 05:59
quelle
0

Dies wurde in der Roo-Edelstein behoben. Sie müssen auf Version 1.12.2 oder höher aktualisieren, um das Problem zu beheben. Siehe das Problem hier: Ссылка

    
dano 03.03.2014 01:06
quelle