Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 未初始化的常量Zip::Archive_Ruby_Ruby On Rails 4_Rubygems_Nokogiri_Rubyzip - Fatal编程技术网

Ruby 未初始化的常量Zip::Archive

Ruby 未初始化的常量Zip::Archive,ruby,ruby-on-rails-4,rubygems,nokogiri,rubyzip,Ruby,Ruby On Rails 4,Rubygems,Nokogiri,Rubyzip,最初我使用了zipruby gem并升级了rails环境,并尝试切换rubyzip。那么,与此等价的是什么呢 在gem文件中使用gem-gem'rubyzip',gem'nokogiri',rails-4.1.9,ruby-2.2 Zip::Archive.open("#{@docx_file.path}") do |dest| n = dest.num_files n.times do |i| case dest.get_name(i) when 'w

最初我使用了zipruby gem并升级了rails环境,并尝试切换rubyzip。那么,与此等价的是什么呢

在gem文件中使用gem-gem'rubyzip',gem'nokogiri',rails-4.1.9,ruby-2.2

Zip::Archive.open("#{@docx_file.path}") do |dest|
   n = dest.num_files
    n.times do |i|
      case dest.get_name(i)
        when 'word/document.xml'
          dest.replace_buffer i, @docx[:template].to_xml
       else
          #
       end
   end
end
问题-未初始化的常量Zip::Archive

根据rubyzip gem的定义,正确使用的类是
Zip::File
。您可以使用

Zip::File.open('foo.zip') do |zip_file|
  # Handle entries one by one
  zip_file.each do |entry|
    # Extract to file/directory/symlink
    puts "Extracting #{entry.name}"
    entry.extract(dest_file)

    # Read into memory
    content = entry.get_input_stream.read
  end

  # Find specific entry
  entry = zip_file.glob('*.csv').first
  puts entry.get_input_stream.read
end
请阅读提供给您的文档。

根据rubyzip gem的定义,正确使用的类是
Zip::File
。您可以使用

Zip::File.open('foo.zip') do |zip_file|
  # Handle entries one by one
  zip_file.each do |entry|
    # Extract to file/directory/symlink
    puts "Extracting #{entry.name}"
    entry.extract(dest_file)

    # Read into memory
    content = entry.get_input_stream.read
  end

  # Find specific entry
  entry = zip_file.glob('*.csv').first
  puts entry.get_input_stream.read
end

请阅读提供给您的文档。

出于兴趣,我检查了gem的旧版本,以查看API是否发生了更改。但是
Zip::Archive
从来没有被gem定义过。@holger这是我的作品,我已经读过了,但是我没有得到预期的结果。最初我使用了zipruby gem,现在升级了rails和ruby环境,然后我决定切换rubyzip gem,但在移动方面遇到了困难。我已经完全更新了我需要转换的方法。请检查它,并在可能的情况下给我精确的解决方案。@Arvindraj但您原始(和更改的)问题的答案仍然相同。如果你还有其他问题,请问一个新问题。请确保在这个新问题中准确描述您的问题。请参阅“如何编写一个好的问题,让人们帮助您”。@Arvindrajp但如果您仍然有困难,请创建一个新的、结构良好的问题。正如这个答案所示,您使用这个gem的语法是无效的-您需要阅读文档并适当地更新它。出于兴趣,我检查了gem的旧版本,以查看API是否发生了更改。但是
Zip::Archive
从来没有被gem定义过。@holger这是我的作品,我已经读过了,但是我没有得到预期的结果。最初我使用了zipruby gem,现在升级了rails和ruby环境,然后我决定切换rubyzip gem,但在移动方面遇到了困难。我已经完全更新了我需要转换的方法。请检查它,并在可能的情况下给我精确的解决方案。@Arvindraj但您原始(和更改的)问题的答案仍然相同。如果你还有其他问题,请问一个新问题。请确保在这个新问题中准确描述您的问题。请参阅“如何编写一个好的问题,让人们帮助您”。@Arvindrajp但如果您仍然有困难,请创建一个新的、结构良好的问题。正如这个答案所示,您使用这个gem的语法是无效的-您需要阅读文档并适当地更新它。