0

以最简单的形式...

我在应用程序中使用 Carrierwave 来自动上传存在于外部站点上的图像,以便尽可能减少它们的负载。第一次显示图像时,我触发 Carrierwave 进行上传。

db 以在后台 Java 进程中编写的图像 url 为种子。然后在 Ruby 中,我将种子 url 分配给“remote_image_url”并保存!进行上传和版本控制。这一切都很好。

但是,我必须在数据库中存储一个字段来告知是否已触发上传,这样我就不会在每次显示图像时都触发它。如何判断“图像”是否已上传?“图像”字段实际上是一个 Uploader,有没有方法可以告诉我它是否已被触发?

4

1 回答 1

1

一旦您通过 分配远程文件,Carrierwave 就会下载远程文件model.remote_image_url=,并在您调用 时立即将文件移动到其最终位置(本地存储、S3 等)model.save。这是同步发生的,所以如果model.save已经完成,并且没有出现错误,则您的文件已被存储。

换句话说:如果你刚刚从数据库中加载了一个模型,并且model.image?是真的,那么model.image.url应该是一个有效的 URL。

于 2013-09-04T21:12:18.747 回答