在Rails 5.2中,Active Storage是一个新的库,用于上传和存储文件。在使用Active Storage上传文件时,有时我们需要替换存储在服务器上的图片。但是,替换图片时出现了一些问题。
解决方法是使用Active Storage的replace方法。这个方法可以取代存储在服务器上的文件,如下所示:
# 从文件系统或 HTTP 上创建一个直传上传
avatar.attach(io: File.open('/path/to/face.jpg'), filename: 'face.jpg')
# 替换同名的 blob
avatar.attach(io: File.open('/path/to/new_face.jpg'), filename: 'face.jpg')
在这个例子中,我们首先使用attach方法将一个文件上传到Active Storage。然后,我们使用replace方法将一个新的图片替换掉原来的图片。注意,我们需要指定相同的文件名,以便替换。