CarrierWave / Mongoid:将文件从一个记录复制到另一个记录

时间:2012-12-06 13:59:03

标签: ruby-on-rails mongodb carrierwave gridfs

我们有以下型号:

  • 模板
  • 文档

两者都安装了CarrierWave Uploader,我可以将文件附加到记录中。这些文件存储在MongoDB的GridFS中。这很好。

然后,用户应该可以使用Document创建新的Template。这意味着附加到Template的文件应该复制到新创建的Document对象。

我使用以下代码复制文件:

template = Template.find(tmpl_id)
new_document = Document.new
new_document.source = template.source.file

source是载入wavewave上传器的属性。这个样本确实有效。但仅适用于不大于一个GridFS块的文件。不复制较大的文件。这意味着目标文件的大小保持为0字节,但我没有收到任何错误消息。

CarrierWave包含在我们的Gemfile中,如下所示:

gem "carrierwave-mongoid", '0.3.0.alpha', git: "git://github.com/jnicklas/carrierwave-mongoid.git", branch: "mongoid-3.0"

(现实世界有点复杂。我在这里简化了一些事情,专注于解决这个问题。)

有没有人有一些关于如何使用CarrierWave和GridFS将文件从一个记录/模型复制到另一个记录/模型的示例或最佳实践?

0 个答案:

没有答案