画像のアップロードにrefileを使用していて、ファイルの保存先を変更することがあったので備忘録として書きます。
##開発環境
- Ruby 2.6.3
- RubyOnRails 5.3.4
Gemfile.
# 画像アップロードにrefileを利用
gem "refile", require: "refile/rails", github: 'manfe/refile'
gem "refile-mini_magick"
###保存先の変更
デフォルトだとアップロードされた画像は tmp/uploads/store に保存されます。
今回は public/uploads/ に変更したかったので、configのinitializers配下にrefile.rbというファイルを作成し、下記のように設定を加えます。
config/initializers/refile.rb
Refile.backends['store'] = Refile::Backend::FileSystem.new('public/uploads/')
これで、保存先を変更することができました。
しかし、本番環境を確認すると困ったことが起きました。
画像ファイルを読み込む場所を変更したので、当然のことですが、
変更前にアップロードした画像が表示されなくなってしまいました。
試しに変更前にtmp配下に保存されたファイルたちをpublicに移動してあげたら無事表示されました。
terminal.
$ cp tmp/uploads/store/* public/uploads/
どのケースでもこの対応で解決できるかはわかりませんが、どなたかの参考になれば幸いです。