【问题标题】:Saving files on Rails with Carrierwave使用 Carrierwave 在 Rails 上保存文件
【发布时间】:2012-02-11 12:00:12
【问题描述】:

我正在使用 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 是一个文件上传器 gem,但这更多地与对象关系映射有关,即将模型对象的文件字段保存到数据库。

如何为提交设置不同的文件,并确保它们保存在与从上传接收文件时相同的目录结构中?

【问题讨论】:

    标签: ruby-on-rails ruby file carrierwave


    【解决方案1】:

    原来carrierwave也是一个ORM框架,所以它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 2011-04-24
      相关资源
      最近更新 更多