picture_uploader.rb 1.4 KB

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