From 1aefeb4d6b31e17b2bfc9f8cbd7849e0e509daac Mon Sep 17 00:00:00 2001 From: Marcin Kulik Date: Sun, 4 Aug 2013 22:34:45 +0200 Subject: [PATCH] Introduce BaseUploader with common store_dir for all uploaders --- app/uploaders/base_uploader.rb | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 app/uploaders/base_uploader.rb diff --git a/app/uploaders/base_uploader.rb b/app/uploaders/base_uploader.rb new file mode 100644 index 0000000..cfe1e0e --- /dev/null +++ b/app/uploaders/base_uploader.rb @@ -0,0 +1,52 @@ +# encoding: utf-8 + +class BaseUploader < CarrierWave::Uploader::Base + + # Include RMagick or MiniMagick support: + # include CarrierWave::RMagick + # include CarrierWave::MiniMagick + + # Choose what kind of storage to use for this uploader: + # storage :fog + + # Override the directory where uploaded files will be stored. + # This is a sensible default for uploaders that are meant to be mounted: + def store_dir + store_dir_prefix + "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" + end + + def store_dir_prefix + Rails.env.test? ? '../tmp/' : '' + end + + # Provide a default URL as a default if there hasn't been a file uploaded: + # def default_url + # "/images/fallback/" + [version_name, "default.png"].compact.join('_') + # end + + # Process files as they are uploaded: + # process :scale => [200, 300] + # + # def scale(width, height) + # # do something + # end + + # Create different versions of your uploaded files: + # version :thumb do + # process :scale => [50, 50] + # end + + # Add a white list of extensions which are allowed to be uploaded. + # For images you might use something like this: + # def extension_white_list + # %w(jpg jpeg gif png) + # end + + # Override the filename of the uploaded files: + # Avoid using model.id or version_name here, + # see uploader/store.rb for details. + # def filename + # "something.jpg" if original_filename + # end + +end