它是方法来验证图像上传图像方向?我希望该用户只能上传景观形象。
谢谢
mount_uploader :photo, PhotoUploader
validate :check_landscape
def check_landscape
if photo.width<photo.height
errors.add :photo, "is not a landscape."
puts "Error ! not a Landscape Image"
else if photo.width>photo.height
puts " Landscape Image"
end
end
end
如果你正在寻找active_storage has_many_attached
has_many_attached :images
validate: active_storage_many_images
def active_storage_many_images
images.each do |image|
image.blob.analyze unless image.blob.analyzed?
width = image.blob.metadata[:width]
height = image.blob.metadata[:height]
if width<height
errors.add :image, "Additional images are not landscape"
puts "ACTIVE STORAGE IMAGE ERROR !!"
end
end
end
因此,所有你所需要的是图像的EXIF元数据。我看到了一个宝石,可以帮助我们从我们上传的图像获取元数据,好像它可以帮助你在这种情况下,
https://github.com/gzigzigzeo/carrierwave-meta
基本上,我们可以得到IMAGE_SIZE的大小,然后创建一个验证依赖它。