我正在使用Carrierwave上传文件。当在控制器中接收到文件时,我将其设置为模型对象并保存模型。
@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是一个文件上传器宝石,但这更多地与对象关系映射有关,即将模型对象的文件字段保存到数据库。
如何为提交设置不同的文件,并确保它们保存在与从上传文件收到文件时相同的目录结构中?
答案 0 :(得分:-1)
证明了carrierwave也是一个ORM框架,所以它可以工作。