0
我正在使用Carrierwave上傳文件。當在控制器中接收到文件時,我將其設置爲模型對象並保存模型。使用Carrierwave將文件保存在Rails上
@submission = Submission.new(params[:submission])
@submission.file = params[:submission][:file]
@submission.save
然後我看到文件被保存在目錄結構中。我認爲這個配置將目錄
上傳/ submission_uploader.rb
def store_dir
"files/#{model.class.to_s.underscore}/#{model.id}/#{mounted_as}/"
end
我也從不同來源獲得的文件。例如,用戶可以上傳一個zip文件,然後在服務器上提取zip文件,並且每個提取的文件和相同的參數都會創建一個新的提交文件,並將其保存。
在這種情況下,如果文件不是從上傳文件而是從其他源文件接收到的,例如存儲在服務器上的文件,保存模型時是否與文件上傳時生成的目錄結構相同?
我感到困惑的原因是,根據documentation Carrierwave是一個文件上傳gem,但這更多地與對象關係映射有關,即將模型對象的文件字段保存到數據庫。
如何爲提交設置不同的文件並確保它們保存在與從上載文件接收時相同的目錄結構中?