1

現在、このコードを使用してモデルを検証しています:

validates :price, :presence => true, :numericality => {:greater_than => 0}

これは正常に機能しますが、このフィールドに値を入力しないと、「価格を空白にすることはできません」と「価格は数値ではありません」という 2 つのエラーが発生します。

なぜこれが起こるのか理解できます - 明らかに両方のテストに失敗しています。しかし、数値がまったくない場合に数値が > 0 であるかどうかをテストする意味がないため、1 つのテストの後に検証を停止する方法があるかどうか疑問に思っています。

ありがとう!

編集: 明確にするために、フィールドを空白にしないでください。実際には 1 つのエラーに対して 2 つのエラー メッセージが表示されるのを避けるために、空白の場合は数値テストを実行したくありません。

4

1 に答える 1

1

それが機能するかどうかはわかりませんが、試すことができます:

validates :price, :presence => true, :numericality => {:greater_than => 0, :allow_blank => true }
于 2012-10-11T20:28:58.633 に答える