我需要解压缩包含日志文件的压缩文件,并将其分别保存为不同的条目。我使用“ carrierwave”上传了文件。
我在网络上找到了一种解压缩压缩文件的方法,并将其作为辅助方法放置在我的ApplicationsController中,以便可供不同的控制器使用。但是,每次我尝试解压缩上传的压缩文件时,都不会发生。我不确定自己在做什么错。我已经安装了宝石“ rubyzip”和“ zip”。
这是我的application_controller.erb:
class ApplicationController < ActionController::Base
helper_method :airwave
require 'rubygems'
require 'zip'
def airwave (file, destination)
Zip::File.open(file) do |zip_file|
zip_file.each do |f|
f_path = File.join(destination, f.name)
FileUtils.mkdir_p(File.dirname(f_path))
f.extract(f_path)
end
end
end
end
这是我的index.html.erb:
<tbody>
<% @imports.each do |import| %>
<tr>
<td><h5><%= import.id %></h5></td>
<td><h5><%= import.name %></h5></td>
<td><h5><%= link_to "Download", import.attachment_url %></h5></td>
<td><h5><%= link_to "Unzip", method: :airwave%></h5></td>
<td><h5><%= link_to "Delete", import, method: :delete, confirm: "Are you sure you want to delete #{import.name}?" %></h5></td>
</tr>
<% end %>
</tbody>