web-dev-qa-db-ja.com

rubyzipエラーの使用-ロードするそのようなファイルはありません-Zip / zip

このテーマに関する別のスレッドがあることは知っていますが、すべてのソリューションを使用した後でも、この問題に直面しています。 Zipファイルを生成する他の方法はありますか? Ubuntuシステムコマンドを使用できますか?

やった

 gem install rubyzip

私が持っています

require 'rubygems'
require 'Zip/zip'

私のコントローラーで

しかし、それでも同じエラーが発生します-そのようなファイルをロードしません-Zip/zip Ruby 1.8.7とRuby 1.9.2with Rails Ubuntuでは3.0.5

手伝っていただけませんか?ありがとう。

25
coredump

たくさんの時間を費やした後、私はついに欠けている部分を見つけました。 rubyzip gemを使用する場合、Zip/zipも必要でした。

これをGemfileに追加します

gem 'rubyzip', :require => 'Zip/zip'

gem 'rubyzipを追加するだけではうまくいきませんでした。

22
coredump

Gemfileでgemバージョン0.9.9を指定することで、この問題を修正しました。

gem 'rubyzip',  "~> 0.9.9"

Rubyzip(1.0.0)を使用するとエラーが発生しました。 rubyzip gihub にこれに関するメモがあります:

Rubyzipインターフェースが変更されました!!!クラス名の「Zip/zip」とZipプレフィックスを削除する必要はありません。サードパーティの宝石に問題があり、rubyzipが必要な場合は、次の一時的な修正を使用できます。

# Place this line before your library or on the head of your Gemfile
gem 'rubyzip', '< 1.0.0'
23
eagor

@eagorの回答に基づいて、rubyzip> = 1.0を使用したいが、下位互換性が必要な場合は、これをGemfileに追加します。

gem 'Zip-zip'

レガシーコードの更新を保存します。

18
Zubin

Rubyzipを1.0.0にアップグレードする場合は、require 'Zip/zip'require 'Zip'に変更してください。

https://stackoverflow.com/a/19506372/567399

7
mmell

また、解凍プロセスで次のものが使用されていることを確認してください。

Zip::ZipFile.open(self.data) do |zipfile|

ない

Zip::Zipfile.open(self.data) do |zipfile|

ZipFileの大文字のFが違いを生みます。

3
Chris Shanks

私の場合、私はから変更する必要がありました

Zip::File.open(...)

Zip::ZipFile.open(...)

もちろん、これもGemfileに追加する必要があります。

gem 'rubyzip', :require => 'Zip/zip'
1
Artur Małecki

rubyzipに問題があり、このスレッドに出くわした人は、いつでも外部のコマンドラインZipユーティリティにシェルアウトできることを忘れないでください。 Googleから見つけることができる無料のコマンドラインユーティリティがいくつかあります。選択したコマンドラインZipプログラムをインストールし、それがシステムパス上にあることを確認したら、バッククォートを使用してRuby内からプログラムを駆動します。もちろん、これはHerokuなどで実行されているWebアプリケーションでは機能しません。

1
Alex D