CarrierWave 環境ごとにディレクトリ変更

こんにちは。麺処まつば副店長です。
いやぁ…暑いですね…。ガリガリ君梨味を食べてもまだ暑いです…

今回は、予告通り carrierWave のファイル保存先ディレクトリを
環境ごとに切り替えた話でもしようと思います。

大した作業は必要ないです。
cache_dir/store_dir をオーバーライドするだけです。

参考
https://github.com/carrierwaveuploader/carrierwave#changing-the-storage-directory

app/uploaders/hoge_uploader.rb

 1 class HogeUploader < CarrierWave::Uploader::Base
 2   
 3   def store_dir
 4     "uploads/#{Rails.env}/file/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
 5   end
 6   
 7   def cache_dir
 8     "uploads/#{Rails.env}/file/tmp/#{model.class.to_s.underscore}/#{mounted_as}"
 9   end
10   
11 end

3~5行目で store_dir のオーバーライド、
7~9行目で cache_dir をオーバーライドしています。

それぞれ「Rails.env」を使うことで環境毎にディレクトリが切り替わるようになっています。
それ以外は適宜変更すると良いです。