2

我们有以下型号:

  • 模板
  • 文档

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

4

0 回答 0