carrierwaveで画像ファイルをアップロードする機能を実装していて、保存まで成功したのですが、プライバシーに関わるような画像はpublicフォルダーには置かない方が良いということだったので、キャッシュファイルや画像の保存場所をtmpディレクトリにしようと思っているのですが、できません。ここを参考にしました。CarrierWaveでUploaderごとに保存するディレクトリを変える
rb
1 2##uploader 3def store_dir 4 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 5 end 6 7 def cache_dir 8 'cache' 9 end 10 11 def root 12 "#{Rails.root}/tmp" 13 end
このとき<%= image_tag @model.image.url >での画像の表示が、文字化けが発生してうまくいきません。
ルート変更後の画像表示がエラー
Started GET "/cache/1562256626-32441-0012-8251/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2019-05-13_0.23.23.png" for ::1 at 2019-07-05 01:10:34 +0900 ActionController::RoutingError (No route matches [GET] "/cache/1562256626-32441-0012-8251/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2019-05-13_0.23.23.png"):
一応画像のパスは byebugで確認したところ期待通りの場所をさしていました。
(byebug) @model.image.path "/Users/Application/MyApp/tmp/uploads/tmp/1562254548-32226-0001-0551/スクリーンショット_2019-05-01_6.05.02.png"
どこかおかしいところを指摘してくださる方ございませんでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。