一定の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