2017-05-30 63 views
2

当我尝试使用写入模式打开zip文件时,下面的消息被记录下来。ruby​​zip未定义的方法`to_binary_dos_time'为

全部错误消息:

undefined method `to_binary_dos_time' for 2017-05-30 15:07:21 +0530:Time 

回溯:

["/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_entry.rb:286:in `write_local_entry'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_output_stream.rb:147:in `block in update_local_headers'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_entry_set.rb:35:in `each'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_entry_set.rb:35:in `each'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_output_stream.rb:145:in `update_local_headers'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_output_stream.rb:64:in `close'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_output_stream.rb:50:in `ensure in open'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_output_stream.rb:50:in `open'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_file.rb:216:in `block in commit'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_file.rb:324:in `on_success_replace'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_file.rb:214:in `commit'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_file.rb:242:in `close'", 
    "/usr/local/lib/ruby/gems/2.1.0/gems/rubyzip-0.9.9/lib/zip/zip_file.rb:92:in `open'", 
    "/app/zipper_job.rb:36:in `perform'", 

我的代码如下所示。

path="#{Rails.root}" 
new_zip_name= "#{Time.now.to_i.to_s}" 
archive = File.join(path,new_zip_name)+'.zip' 
Zip::ZipFile.open(archive, 'w') do |zipfile| #Code breaking on this line 
    #MY Code 
end 

任何帮助appriciated! 在此先感谢。

回答

1

我创建了一个名为config/initializers/patch.rb的新文件。

在其中添加了以下代码,解决了这个问题。

Zip::DOSTime.instance_eval do 
    def now ; Zip::DOSTime.new() ; end 
end 

我从here

采取的补丁
相关问题