LoginSignup
9
11

More than 5 years have passed since last update.

CarrierWaveでUploaderごとに保存するディレクトリを変える

Posted at

調べてもうまく探せなかったので備忘録として。

CarrierWaveでUploaderごとにディレクトリを分けたいケースがあると思います。プロフィール画像はpublicにおいてもいいけど、ユーザの投稿画像は別のところに置きたいとか。

config/initializers/carrierwave.rbに、下記のように定義すれば、public以外のところにファイルの保存先を自由に定義できます。

config/initializers/carrierwave.rb
CarrierWave.configure do |config|
  config.root = "#{Rails.root}/private"
end

https://github.com/carrierwaveuploader/carrierwave/wiki/How-To%3A-Secure-Upload)

ただ、この方法だと前述のようにUploaderごとに変えたい場合にはうまく行きません。なので、下記のようにUploaderの中で書いてあげればうまくいきました。

app/uploaders/hoge_uploader.rb
class HogeUploader < CarrierWave::Uploader::Base

  storage :file

  def root # ここでrootを書いてあげる
    "#{Rails.root}/private"
  end
end

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11