画像が保存されると、画像の高さと幅がモデルに正しく保存されます。保存する前に画像の寸法を検証する必要があるという要件があります。正確に同じ寸法でなければなりません。しかし、保存する前に高さまたは幅にアクセスしようとすると、nil が返されます。
これを達成できる方法はありますか?
今のところ、保存後に画像が目的のサイズではないという警告を表示します。しかし、それだけでは十分ではありません。
画像が保存されると、画像の高さと幅がモデルに正しく保存されます。保存する前に画像の寸法を検証する必要があるという要件があります。正確に同じ寸法でなければなりません。しかし、保存する前に高さまたは幅にアクセスしようとすると、nil が返されます。
これを達成できる方法はありますか?
今のところ、保存後に画像が目的のサイズではないという警告を表示します。しかし、それだけでは十分ではありません。
attachment_fuについてはよくわかりませんが、実際の画像はおそらくbefore_save
またはに保存されていafter_save
ます。画像が保存される前に検証が実行されます。
コールバックを使用してbefore_validation
、画像の処理を強制します。
使用しafter_validation
ました。before_validation
私にはうまくいきませんでした。したがって、私が本質的に行ったのは、after_validation
フックの寸法を確認し、 を使用してエラーを入力すること@image.errors.add_to_base("The image needs to be of precisely 137x52 pixels.")
でした。そして、次の方法で画像を保存しました。
@image.valid? # Run the validations, which calls my hook method after_validation
@image.save if @image.errors.empty?