以最简单的形式......
我在应用程序中使用Carrierwave自动上传外部网站上存在的图像,以便尽可能减少对它们的负担。我第一次想要显示图像时触发Carrierwave进行上传。
db使用在后台Java进程中编写的映像url播种。然后在Ruby中我将种子URL分配给“remote_image_url”并保存!让上传和版本控制发生。一切正常。
但是我必须在db中存储一个字段,告诉上传是否已被触发,以便每次显示图像时都不会触发它。如何判断“图像”是否已上传? “图像”字段实际上是一个上传器,是否有一种方法可以告诉我它是否已被触发?
答案 0 :(得分:1)
Carrierwave会在您通过model.remote_image_url=
分配后立即下载远程文件,并在您拨打model.save
后立即将文件移至其最终位置(本地存储,S3等)。这是同步发生的,因此如果model.save
已完成,并且没有出现错误,则表示您的文件已存储。
换句话说:如果您刚刚从数据库加载模型,model.image?
为真,那么model.image.url
应该是一个有效的URL。