Проверка размеров изображения во вложении фу

Когда изображение сохраняется, высота и ширина изображения сохраняются в модели правильно. У меня есть требование, где мне нужно проверить размеры изображения перед сохранением. Он должен быть точно такого же размера. Но когда я пытаюсь получить доступ к высоте или ширине перед сохранением, это дает мне ноль.

Есть ли способ, где я могу этого добиться?

На данный момент я даю предупреждение после сохранения, что изображение не имеет желаемых размеров. Но это не достаточно аккуратно.

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 обратный вызов для принудительной обработки изображения.

Другие вопросы по тегам