1

画像が保存されると、画像の高さと幅がモデルに正しく保存されます。保存する前に画像の寸法を検証する必要があるという要件があります。正確に同じ寸法でなければなりません。しかし、保存する前に高さまたは幅にアクセスしようとすると、nil が返されます。

これを達成できる方法はありますか?

今のところ、保存後に画像が目的のサイズではないという警告を表示します。しかし、それだけでは十分ではありません。

4

2 に答える 2

0

attachment_fuについてはよくわかりませんが、実際の画像はおそらくbefore_saveまたはに保存されていafter_saveます。画像が保存される前に検証が実行されます。

コールバックを使用してbefore_validation、画像の処理を強制します。

于 2010-10-27T11:25:17.273 に答える
0

使用し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?
于 2010-11-18T04:41:12.473 に答える