一定のwidthとheightより小さいものはアップロードしないように
validateではじきたいなということでwidthとheightを取得する方法を調べました。
やり方としては、modelにwidthとheightの値を格納する変数を用意して、
uploaderでwidthとheightに格納する処理を記述すればよいようです。
保存をする前にwidthとheightを取ることができるので、
自分で比較してはじいたり、validateではじいたりどちらもできます。
class Image < ActiveRecord::Base mount_uploader :image, ImageUploader attr_accessor :width, :height end class ImageUploader < CarrierWave::Uploader::Base process :store_dimensions def store_dimensions if file && model model.width, model.height = `identify -format "%wx%h" #{file.path}`.split(/x/) end end end
参考URL
https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Get-image-dimensions