Question

Lorsque l'image est enregistrée, la hauteur et la largeur de l'image sont enregistrées correctement dans le modèle. J'ai une exigence où je dois valider les dimensions de l'image avant d'enregistrer. Il doit être précisément les mêmes dimensions. Mais lorsque j'essaie d'accéder à la hauteur ou à la largeur avant de sauver, cela me donne nulle.

Existe-t-il un moyen d'y parvenir?

Pour l'instant, je donne un avertissement après la sauvegarde, que l'image n'est pas des dimensions souhaitées. Mais ce n'est pas assez soigné.

Était-ce utile?

La solution 2

j'ai utilisé after_validation. before_validation N'a pas travaillé pour moi. Alors ce que j'ai essentiellement fait, c'est que j'ai vérifié les dimensions dans un after_validation crochet et l'a fait mettre des erreurs en utilisant @image.errors.add_to_base("The image needs to be of precisely 137x52 pixels."). Et j'ai enregistré l'image de la manière suivante.

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

Autres conseils

Je ne suis pas sûr de attachement_fu, mais la véritable image est probablement sauvegarde dans un before_save ou after_save. Votre validation s'exécute avant l'enregistrement des images.

Utiliser un before_validation rappel pour forcer le traitement de l'image.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top