Ruby on rails 如何使用RubyonRails向已有的zip文件添加密码

Ruby on rails 如何使用RubyonRails向已有的zip文件添加密码,ruby-on-rails,ruby,ruby-on-rails-4,rubygems,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 4,Rubygems,Ruby On Rails 3.2,我已经用ruby创建了一个ZIP文件,现在我必须给这个文件添加密码。但它不起作用。有人能帮忙吗。我正在使用rubyzip和zip-gem。 我尝试的代码如下: #Create Zip File and delete if already existing filename= 'abc.xlsx' zip_file_path = Rails.root.join('tmp/my.zip') file_name =filenam

我已经用ruby创建了一个ZIP文件,现在我必须给这个文件添加密码。但它不起作用。有人能帮忙吗。我正在使用rubyzip和zip-gem。 我尝试的代码如下:

#Create Zip File and delete if already existing
 filename= 'abc.xlsx'
                 zip_file_path = Rails.root.join('tmp/my.zip')  
                 file_name =filename
                 file_path = Rails.root.join('tmp', filename)  
                 logger.error zip_file_path
                 logger.error file_path

                 File.delete(zip_file_path) if File.exist?(zip_file_path)

                 Zip::ZipFile.open(zip_file_path, Zip::ZipFile::CREATE) do |zip|
                        zip.add(file_name, file_path)  
                 end        
   # end
下一步是向ZIP文件添加密码。我试过下面的方法

 Zip::File.encrypt(zip_file_path, 'password')
     # Got error like : **NameError (uninitialized constant Zip::Archive):**
我还尝试使用以下方法:

    Zip::OutputStream.write_buffer(::StringIO.new(''), Zip::TraditionalEncrypter.new('password')) do |out|
      out.put_next_entry("my_file.txt")
      out.write my_data
    end.string

#error: **NameError (uninitialized constant Zip::TraditionalEncrypter):**

“不起作用”——什么不起作用?你试过什么?您得到了什么结果/错误?为什么将其标记为
ruby-on-rails
ruby-on-rails-4
ruby-on-rails-3.2
?rails与这个问题相关吗?(为什么?)我使用的是rail版本--“3.2.13”,请包含所有相关信息;不要把它埋在评论里。你在用哪个图书馆?(什么是
Zip
?)rails实际上与问题/解决方案有关,还是多余的信息?如果相关,那么解释原因;如果不是,那么就没有必要给问题贴上这样的标签。