Pergunta

Quando a imagem é salva, a altura e a largura da imagem são salvas no modelo corretamente. Tenho um requisito em que preciso validar as dimensões da imagem antes de salvar. Tem que ser exatamente as mesmas dimensões. Mas quando tento acessar a altura ou a largura antes de salvar, ela me dá nulo.

Existe alguma maneira de conseguir isso?

Por enquanto, dou um aviso após salvar, que a imagem não é das dimensões desejadas. Mas isso não é legal o suficiente.

Foi útil?

Solução 2

eu usei after_validation. before_validation não funcionou para mim. Então, o que eu fiz foi ver as dimensões em um after_validation gancho e ele colocou erros usando @image.errors.add_to_base("The image needs to be of precisely 137x52 pixels."). E eu salvei a imagem da seguinte maneira.

@image.valid? # Run the validations, which calls my hook method after_validation
@image.save if @image.errors.empty?

Outras dicas

Não tenho certeza sobre o apetment_fu, mas a imagem real provavelmente é salvo em um before_save ou after_save. Sua validação é executada antes que as imagens sejam salvas.

Use um before_validation Retorno de chamada para forçar o processamento da imagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top