Проверка размеров изображения во вложении фу
Когда изображение сохраняется, высота и ширина изображения сохраняются в модели правильно. У меня есть требование, где мне нужно проверить размеры изображения перед сохранением. Он должен быть точно такого же размера. Но когда я пытаюсь получить доступ к высоте или ширине перед сохранением, это дает мне ноль.
Есть ли способ, где я могу этого добиться?
На данный момент я даю предупреждение после сохранения, что изображение не имеет желаемых размеров. Но это не достаточно аккуратно.
2 ответа
Я использовал after_validation
, before_validation
не работал для меня. Так что я, по сути, сделал, я проверил размеры в after_validation
подключить и положить ошибки, используя @image.errors.add_to_base("The image needs to be of precisely 137x52 pixels.")
, И я сохранил изображение следующим образом.
@image.valid? # Run the validations, which calls my hook method after_validation
@image.save if @image.errors.empty?
Я не уверен насчет attachment_fu, но реальное изображение, вероятно, сохраняется в before_save
или же after_save
, Ваша проверка запускается до сохранения изображений.
Использовать before_validation
обратный вызов для принудительной обработки изображения.