carrierwave のフックの問題

画像アップロード系のプラグインで定番の carrierwave について。wiki にも書かれているように、5つのコールバックがある。保存されるときに使われるのは :store で、多分これが一番多用されると思う。

このコールバックには問題が一つあって、それはサムネイルの種類(carrierwaveではversionと呼ばれているぽい)が、複数定義されていると、一回保存されるたびにその種類の数 :store が呼ばれてしまうという点。現時点で「画像保存後に一回だけ何らかの処理がしたい」場合のサポートは無いみたい。

そのような場合は仕方ないので独自に after_commit など使って定義するしかない。ただそうすると画像を保存してないときにも処理が走ってしまうのが残念。がんばってハックすればできるのかもしれないけど、ざっくりソース追った限りは面倒そうな印象を受けた。