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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top