如何根据请求生成压缩文件。
我有这个控制器
def create
send_data generate_tgz("#{RAILS_ROOT}/tmp/example.txt"), :filename => 'export.tgz'
end
但它给了我一个在generate_tgz上找不到的方法。
是插件还是宝石?我需要什么吗?我可以生成一个zip文件吗?
编辑:
def generate_tgz(file)
system("tar -czf #{RAILS_ROOT}/tmp/export-result #{RAILS_ROOT}/tmp/export")
content = File.read("#{RAILS_ROOT}/tmp/export-result")
#ActiveSupport::Gzip.compress(content)
end
这会创建一个tgz,但是当我解压缩它时,我得到app / c3ec2057-7d3a-40d9-9a9d-d5c3fe3ffd6f / home / tmp / export / and_the_files
我希望它只是:export / the_files
答案 0 :(得分:3)
该方法不存在。您可以使用ActiveSupport::Gzip轻松创建它。
def generate_tgz(file)
content = File.read(file)
ActiveSupport::Gzip.compress(content)
end