使用主动存储时,可以像这样删除图像:
@file = ActiveStorage::Attachment.find(params[:id])
@file.purge
但是,这只会删除数据库记录。
使用ActiveStorage删除附件时如何清理服务器上的文件?
purge
的文档说它确实会从服务器上删除该文件:
删除服务上的文件,然后销毁 blob 记录。这是处理不需要的斑点的推荐方法。但请注意,从服务中删除文件将启动与服务的 HTTP 连接,这可能会很慢或被阻止,因此您不应在事务或回调中使用此方法。请改用 purge_later。