Да!Вот пользовательская проверка, которую я написал для своего приложения, оно должно работать дословно в вашем, просто установите пиксели на то, что вы хотите.
def file_dimensions
dimensions = Paperclip::Geometry.from_file(file.queued_for_write[:original].path)
self.width = dimensions.width
self.height = dimensions.height
if dimensions.width < 50 && dimensions.height < 50
errors.add(:file,'Width or height must be at least 50px')
end
end
Заметьте, я использовал self.width=
и self.height=
Чтобы сохранить размеры в базе данных, вы можете не указывать их, если не хотите сохранять размеры изображения.
Проверка ширины и высоты означает, что только один из них должен быть больше 50 пикселей.Если вы хотите убедиться, что ОБА больше 50, вам, по иронии судьбы, нужно проверить ширину ИЛИ высоту.Мне кажется странным, что одна или другая означает проверку И, а обе - ИЛИ, но в этом случае это так.
Единственный другой гоча , вам нужно запустить этоLAST validation: если в модели уже есть другие ошибки, возникнет исключение.Честно говоря, это было давно, поэтому я не помню, какие были сообщения об ошибках, но в вашем макросе проверки используйте это:
validate :file_dimensions, :unless => "errors.any?"
Это должно позаботиться об этом!