Validierung der Bildabmessungen in der Anhang FU
-
26-09-2019 - |
Frage
Wenn das Bild gespeichert wird, werden die Höhe und Breite des Bildes korrekt im Modell gespeichert. Ich habe eine Anforderung, wo ich die Abmessungen des Bildes vor dem Speichern validieren muss. Es muss genau die gleichen Dimensionen sein. Aber wenn ich vor dem Speichern versuche, auf Höhe oder Breite zuzugreifen, gibt es mir Null.
Gibt es eine Möglichkeit, wie ich das erreichen kann?
Im Moment mache ich eine Warnung nach dem Speichern, dass das Bild nicht von den gewünschten Dimensionen besteht. Aber das ist nicht ordentlich genug.
Lösung 2
ich benutzte after_validation
. before_validation
arbeitete nicht für mich. Also habe ich im Wesentlichen die Dimensionen in einem überprüft after_validation
Haken und ließ es Fehler verwenden @image.errors.add_to_base("The image needs to be of precisely 137x52 pixels.")
. Und ich habe das Bild auf folgende Weise gespeichert.
@image.valid? # Run the validations, which calls my hook method after_validation
@image.save if @image.errors.empty?
Andere Tipps
Ich bin mir nicht sicher über Attachment_FU, aber das echte Bild ist wahrscheinlich in a gespart before_save
oder after_save
. Ihr Validierungsauslauf, bevor die Bilder gespeichert werden.
Verwenden ein before_validation
Rückruf, um die Verarbeitung des Bildes zu erzwingen.