LoginSignup
9
11

More than 5 years have passed since last update.

carrierwaveでファイルがアップされない場合のデフォルト画像をセットする

Posted at

ユーザーがファイルをアップしてくれない場合は多々あります。

そんな場合のデフォルト画像の設定の仕方です。

image_uoploader.rbというファイルを作成してた場合の例です。

public以下フォルダに画像を置いて、かつ複数バージョンを指定している場合


class ImageUploader < CarrierWave::Uploader::Base
   version :thumb_300 do
     process :resize_to_fit => [300, 300]
   end

   def default_url
      "/images/fallback/" + [version_name, "default.png"].compact.join('_')
   end
end


app/assets以下に置いている場合はこんな感じ

class ImageUploader < CarrierWave::Uploader::Base
   version :thumb_300 do
     process :resize_to_fit => [300, 300]
   end

   def default_url
       ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
   end
end

とここまではreadmeに書いているのですが、大変はまりました。
何故かと言うと、空画像で投稿してrails consoleで確認しても出ないから。。
rails consoleででないのは普通みたいなので、viewやらで確認しましょう。。

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