Note that this validation runs both after the file is uploaded and after CarrierWave has processed the image. If your base uploader includes a filter to resize the image then the validation will be run against the resized image, not the original one that was uploaded. If this causes a problem for you, then you should avoid using a resizing filter on the base uploader and put any specific size requirements in a version instead.
So instead of this:
require 'carrierwave/processing/mini_magick'
class LogoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
process :quality => 80
process :resize_to_limit => [800, 800]
process :convert => 'png'
# ...
end
Do this:
require 'carrierwave/processing/mini_magick'
class LogoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
process :convert => 'png'
version :medium do
process :quality => 80
process :resize_to_limit => [800, 800]
end
# ...
end
I was getting "comparison of String with 0 failed" exception in the line 51 for the values larger then 1023, until I added precision:
errors_options[:file_size] = help.number_to_human_size check_value, :precision => 5
Now it works fine.
Ruby 2.0.0-p247
Rails 3.2.13