从外部过程播种Carrierwave

时间:2013-09-04 20:50:35

标签: ruby-on-rails carrierwave

以最简单的形式......

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

db使用在后台Java进程中编写的映像url播种。然后在Ruby中我将种子URL分配给“remote_image_url”并保存!让上传和版本控制发生。一切正常。

但是我必须在db中存储一个字段,告诉上传是否已被触发,以便每次显示图像时都不会触发它。如何判断“图像”是否已上传? “图像”字段实际上是一个上传器,是否有一种方法可以告诉我它是否已被触发?

1 个答案:

答案 0 :(得分:1)

Carrierwave会在您通过model.remote_image_url=分配后立即下载远程文件,并在您拨打model.save后立即将文件移至其最终位置(本地存储,S3等)。这是同步发生的,因此如果model.save已完成,并且没有出现错误,则表示您的文件已存储。

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