carrierwaveの動作確認
先日、Railsを使ってS3への画像アップロードをやってみた。
アップロードに際して、carrierwaveを利用しているのだが、 アップロード以外の動作はどのように処理してくれるのかが気になったので確認してみる。
具体的には、下記の動作をしたら、どうなるか確認する。
- カラム更新
- レコード削除
カラム更新
結論、カラムを更新すると、画像ファイル自体も更新された。
具体的には、下記のとおりである。
- レコードAのカラムaには、image.jpegが格納されている
- カラムaをimage_ver2.jpegで更新した
- S3には、image.jpegは削除され、image_ver2.jpegが格納された
レコード削除
- delete_allで削除した場合は、画像が削除されなかった。 その後、同じレコードIDで画像をアップロードしてやると、 以前アップロードした画像が残っていた。
- destroy.allで削除した場合は、画像が(ディレクトリごと)削除された。
- destroyで削除した場合は、画像が(ディレクトリごと)削除された。
deleteで削除すると、画像が残ってしまうので、destroyで削除するのがよさそうだ。