image_uploader.rb 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. class ImageUploader < CarrierWave::Uploader::Base
  2. # Include RMagick or MiniMagick support:
  3. # include CarrierWave::RMagick
  4. include CarrierWave::MiniMagick
  5. # Choose what kind of storage to use for this uploader:
  6. storage :file
  7. # storage :fog
  8. # Override the directory where uploaded files will be stored.
  9. # This is a sensible default for uploaders that are meant to be mounted:
  10. def store_dir
  11. # "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  12. "uploads"
  13. end
  14. # Provide a default URL as a default if there hasn't been a file uploaded:
  15. # def default_url
  16. # # For Rails 3.1+ asset pipeline compatibility:
  17. # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
  18. #
  19. # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
  20. # end
  21. # Process files as they are uploaded:
  22. # process scale: [200, 300]
  23. #
  24. # def scale(width, height)
  25. # # do something
  26. # end
  27. # Create different versions of your uploaded files:
  28. version :thumb do
  29. process resize_to_fit: [50, 50]
  30. end
  31. version :medium do
  32. process resize_to_fit: [250, 80]
  33. end
  34. version :small do
  35. process resize_to_fit: [70, 70]
  36. end
  37. # Add a white list of extensions which are allowed to be uploaded.
  38. # For images you might use something like this:
  39. def extension_whitelist
  40. %w(jpg jpeg png)
  41. end
  42. ##
  43. def content_type_whitelist
  44. /\Aimage\/.*\Z/
  45. end
  46. # Override the filename of the uploaded files:
  47. # Avoid using model.id or version_name here, see uploader/store.rb for details.
  48. # def filename
  49. # "something.jpg" if original_filename
  50. # end
  51. end