astominori / is_your_sky

0 stars 0 forks source link

CarrierWaveのキャッシュを削除する #7

Closed astominori closed 4 years ago

astominori commented 4 years ago

as is: 現状

画像プレビューを実装した際にcarrierwaveのキャッシュを使用したが、 その結果public/tmpにキャッシュが作成され、不要な画像が大量に保存されてしまっている。

to be:望ましい状態

画像プレビューを行っている画面から離れた時点でキャッシュを削除したい 削除パターンとして2つある *画像プレビューに表示され、そのままdbへと保存された画像のキャッシュの削除 *画像プレビューに表示されたが、保存されなかった画像のキャッシュの削除

environment: 環境

Docker for mac 2.3.0.4 Ruby on Rails 5.2.2 macOS Catalina 10.15.5 Google Chrome 85.0.4183.102

to reproduce: environment 上でどういう操作をすると as is の状態になるのか ?

画像プレビューを実装している画面で、画像をアップロードした際に キャッシュが作成される。

frequency: to reproduce を繰り返したときに何度 as is の状態になるのか ?

***

astominori commented 4 years ago

追記

以下の状態でキャッシュが作られる *post際にエラーでrollbackされたタイミング

どこかのタイミングでキャッシュの削除が必要

astominori commented 4 years ago

追記

以下の状態でキャッシュないしアップロードファイルに保存される *テストケースが実行された時 (理由) rspec内のfactoriesでcarrierwaveを呼び出しており、 毎回のテストでtmpとuploadsに保存がくりかえされている。 対処が必要

対策参考のURL carrierwaveの公式wiki *保存済みのキャッシュの削除 https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Delete-cache-garbage-directories *rpsecテスト後のテスト用ファイルの削除 https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Cleanup-after-your-Rspec-tests