2015-12-22 74 views
0

如何將生成的xls(無需上傳表單)文件與paperclip或carriervawe保存到ActiveRecord並使用它然後在亞馬遜S3上進行上傳?用回形針或載波保存生成的文件

file = Tempfile.new(['conracts','.xlsx']) 
     ToXls::Writer.new(content, {:columns => [:name, :address], 
      :headers => ["name","address"]}).write_io(file) 
      file.rewind 

這是我生成的xls文件,但我需要將它永久保存以便在s3上以延遲作業上傳它。

回答

0

使用Carrierwave,您可以將正常文件分配給上傳器的掛載點,然後保存模型。
Carrierwave將處理所有上傳。

所以,如果你有一個模型

class Project < ActiveRecord::Base 
    mount_uploader :xml_file, XmlUploader 
end 

你可以寫

pro=Project.new 
pro.xml_file = file # your generated tempfile 
pro.save 

我不熟悉的回形針。

+0

是的,但如果我的模型是用戶,我生成一個xls文件智慧模型中的所有記錄,然後像上面顯示的那樣保存它,然後我再保存所有模型?我的意思是我有出口導出按鈕,但我怎麼能只保存在模型中的文件,然後上傳?而不是再次保存所有記錄? – pureofpure

+0

如果您可以在保存模型之前生成XML,只需執行此操作,然後分配文件並保存模型。 –