Мне нужно разархивировать заархивированный файл, содержащий файлы журнала, и сохранить их по отдельности как разные записи.Я использовал «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>