簡體   English   中英

rubyzip - 無法加載此類文件 - zip

[英]rubyzip - cannot load such file — zip

我試圖在我的應用程序中使用rubyzip動態創建zip存檔。 我用他們的自述文件作為起點。 我將gem添加到我的Gemfile中:

gem 'rubyzip'

然后運行bundle install並重新啟動rails服務器。

我的控制器代碼是:

require 'rubygems'
require 'zip'

filename = "#{Time.now.strftime('%y%m%d%H%M%S')}"
input_filenames = ["#{filename}.txt"]
zip_filename = "#{filename}.zip"

Zip::File.open(zip_filename, Zip::File::CREATE) do |zipfile|
  input_filenames.each do |f|
    zipfile.add(f, directory + '/' + f)
  end
end

我得到的錯誤是: cannot load such file -- zip

我已經嘗試過require 'zip/zip'但它會產生同樣的錯誤。

提前致謝!

你可能正在看一個太新的例子。

如果您使用的是Rubyzip 0.9.x ,那么您需要遵循以下示例

require "zip/zip" ,然后使用Zip::ZipFile而不是Zip::File

require 'zip/zip'

folder = "Users/me/Desktop/stuff_to_zip"
input_filenames = ['image.jpg', 'description.txt', 'stats.csv']

zipfile_name = "/Users/me/Desktop/archive.zip"

Zip::ZipFile.open(zipfile_name, Zip::ZipFile::CREATE) do |zipfile|
  input_filenames.each do |filename|
    # Two arguments:
    # - The name of the file as it will appear in the archive
    # - The original file, including the path to find it
    zipfile.add(filename, folder + '/' + filename)
  end
end

我建議你用:

gem 'rubyzip',  "~> 1.1", require: 'zip'

然后在你的控制器中require 'zip'應該工作正常。

rubyzip的界面改變了。 你使用舊版本。 來自master分支的rubydoc.info上的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM