ruby-on-rails - NameError - 未初始化的常量 Zip

标签 ruby-on-rails ruby zip unzip rubyzip

我正在尝试解压缩我的 Spree 插件中的文件。

在如下所示的模块中定义解压缩方法。

module ImportImages
  class Zipper
    def self.unzip(zip, unzip_dir, remove_after = false)
      Zip::File.open(zip) do |zip_file|
        zip_file.each do |f|
          f_path=File.join(unzip_dir, f.name)
          FileUtils.mkdir_p(File.dirname(f_path))
          zip_file.extract(f, f_path) unless File.exist?(f_path)
        end
      end
      FileUtils.rm(zip) if remove_after
    end
  end
end

我已将 ruby​​zip gem 包含在我的 Gemfile 中。

gem 'rubyzip'
gem 'zip-zip'

尝试运行它时,出现以下错误。

NameError - uninitialized constant ImportImages::Zipper::Zip:

我已经尝试了 stackoverflow 和其他网站提供的所有解决方案。我尝试将 ruby​​zip 版本降级为 1.2.0,并添加 require 'zip'require 'zip/zip'。两者都返回加载错误。

我尝试将 require 'zip/filesystem' 添加到类(class)中。但是得到了

LoadError - cannot load such file -- zip/zipfilesystem

有什么解决办法吗?

最佳答案

以这种方式在 gem 文件中包含 ruby​​zip:

gem 'rubyzip', require: 'zip'

See this question

关于ruby-on-rails - NameError - 未初始化的常量 Zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36277389/

相关文章:

java - 从 byte[] (Java) 读取时提取 ZipFile 条目的内容

ruby-on-rails - pg gem 安装失败

ruby - 未定义方法 `+@' 为假 :FalseClass (NoMethodError) ruby

ruby-on-rails - ruby 错误 : cannot load such file -- rest-client

ruby - 试图杀死端口 8000 混淆的进程

zip - 如何在 zip 文件中添加注释

java - 获取 zip 条目的实际大小

ruby-on-rails - 运行 '__rvm_make install' 时出错,

javascript - $(...).validate 不是函数

ruby-on-rails - Rails 转义 JSON