CarrierWaveで画像アップロード機能を実装していたのですが、
レポジトリをバックエンドとフロントエンドで分離していて、バックエンド側に仮で画像を保存したかった際、
バックエンドから返ってくるpathがデフォルトだと相対パスで少しつまづいたので
相対パスの絶対パスにする方法を残しておきます。
image_uploader.rbの設定
デフォルトだと以下のようになっているかと思います。
これだけだと相対パスが返されます。
image_uploader
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
絶対パスにするには、image_uploaderにhostのpathの設定を追加します。
image_uploader
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
//追加
def asset_host
return "http://localhost:3001"(バックエンド側で割り当てているhost url)
end
以上、CarrierWaveで相対パスを絶対パスで返す方法でした。
参考