我们有以下型号:
- 模板
- 文档
两者都安装了 CarrierWave Uploader,我可以将文件附加到记录中。这些文件存储在 MongoDB 的 GridFS 中。这很好用。
然后,用户应该能够Document
使用Template
. 这意味着Template
应将附加到的文件复制到新创建的Document
对象。
我使用以下代码复制文件:
template = Template.find(tmpl_id)
new_document = Document.new
new_document.source = template.source.file
source
是安装载波上传器的属性。这个示例确实有效。但仅适用于不大于一个 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 将文件从一个记录/模型复制到另一个记录/模型的示例或最佳实践?