[rails]carrierwaveで特定のuploaderだけ別のs3バケットを使いたい場合


carrierwaveの保存先にs3を使用する場合、config/initializers/carrierwave.rb にs3の設定を書くと思いますが、

特定のuploaderだけ普段とは別のs3バケットを使いたい場合どうやるのかを調べてみました。

作成したuploader内にfog_directoryメソッドを書くと、そのuploaderのみ別のs3バケットを使用することができます。

# app/uploaders/sample_uploader.rb

def fog_directory
  config = YAML.load_file("#{Rails.root}/config/carrierwave.yml")[Rails.env]
  config['fog_another_directory']
end

参考