Convalidamento delle dimensioni dell'immagine nell'allegato Fu
-
26-09-2019 - |
Domanda
Quando l'immagine viene salvata, l'altezza e la larghezza dell'immagine vengono salvati correttamente nel modello. Ho un requisito in cui ho bisogno di convalidare le dimensioni dell'immagine prima del salvataggio. Deve essere esattamente le stesse dimensioni. Ma quando provo ad accedere all'altezza o alla larghezza prima del salvataggio, mi dà zero.
C'è un modo in cui posso raggiungere questo obiettivo?
Per ora, do un avvertimento dopo il salvataggio, che l'immagine non è delle dimensioni desiderate. Ma non è abbastanza pulito.
Soluzione 2
ero solito after_validation
. before_validation
Non ha funzionato per me. Quindi quello che ho fatto essenzialmente è stato controllare le dimensioni in un after_validation
agganciare e averlo commesso errori usando @image.errors.add_to_base("The image needs to be of precisely 137x52 pixels.")
. E ho salvato l'immagine nel modo seguente.
@image.valid? # Run the validations, which calls my hook method after_validation
@image.save if @image.errors.empty?
Altri suggerimenti
Non sono sicuro di adwingment_fu, ma l'immagine reale probabilmente è salvata in a before_save
o after_save
. La tua convalida funziona prima che le immagini vengano salvate.
Usare un before_validation
callback per forzare l'elaborazione dell'immagine.