我们有以下型号:
两者都安装了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将文件从一个记录/模型复制到另一个记录/模型的示例或最佳实践?