Ruby on rails 3 如何在heroku上使用rubyzip创建zip文件
我在阅读用户简历后创建zip文件。代码在本地机器上运行良好。但在heroku上部署此代码时出错Ruby on rails 3 如何在heroku上使用rubyzip创建zip文件,ruby-on-rails-3,rubyzip,Ruby On Rails 3,Rubyzip,我在阅读用户简历后创建zip文件。代码在本地机器上运行良好。但在heroku上部署此代码时出错 def get_stream(contractors) #t = Tempfile.new("my-temp-filename-#{Time.now}") #this code on local t = Tempfile.new("#{Rails.root}/tmp/my-temp-filename-#{Time.now}") #this line on heroku brea
def get_stream(contractors)
#t = Tempfile.new("my-temp-filename-#{Time.now}") #this code on local
t = Tempfile.new("#{Rails.root}/tmp/my-temp-filename-#{Time.now}") #this line on heroku break
begin
Zip::OutputStream.open(t.path) do |zos|
contractors.each_with_index do |contractor, index|
if contractor.cv.path
zos.put_next_entry("#{index+1}_#{contractor.full_name.parameterize.underscore}.#{contractor.cv_file_name.split(".").last}")
zos.print IO.read(contractor.cv.path)
end
end
end
send_file t.path, :type => 'application/zip', :filename => "Contractors_cvs.zip", :x_sendfile => true
t.close
rescue
t.close
end
结束
heroku日志--应用程序只显示“在56毫秒内完成500个内部服务器错误”
请帮忙
谢谢最后,这在本地和heroku上对我都有效
def get_stream(contractors)
begin
Zip::File.open("#{Rails.root}/tmp/zipfile_name.zip", Zip::File::CREATE) do |zipfile|
contractors.each_with_index do |filename, index|
zipfile.add(filename.try(:cv_file_name), filename.try(:cv).try(:path)) if filename.present?
end
end
send_file "#{Rails.root}/tmp/zipfile_name.zip", :type => 'application/zip', :filename => "Contractor_cvs.zip", :x_sendfile => true
File.delete("#{Rails.root}/tmp/zipfile_name.zip")
rescue
end
end