私のフィールドは、正の値を検証したい tax rate
とtax amount
です。負でない整数と小数の値の妥当性確認
私は、この検証書いた:
:format => { :with => /\A[+]?\d+\Z/}
をしかし、それは4.67
のような小数点で数字を取っていません。 それは私に間違いを投げかけています。 整数型と浮動小数点型で有効な検証のタイプは何ですか?例えば、 の場合:2
,57
,54.56
が合格、-2.56
の場合は-87
が失敗します。
私のフィールドは、正の値を検証したい tax rate
とtax amount
です。負でない整数と小数の値の妥当性確認
私は、この検証書いた:
:format => { :with => /\A[+]?\d+\Z/}
をしかし、それは4.67
のような小数点で数字を取っていません。 それは私に間違いを投げかけています。 整数型と浮動小数点型で有効な検証のタイプは何ですか?例えば、 の場合:2
,57
,54.56
が合格、-2.56
の場合は-87
が失敗します。
これは機能しませんか?
validates :your_field, :numericality => { :greater_than_or_equal_to => 0 }
(ルールがより正確になり、次の税を推測:)
あなたが使用することができvalidates :your_field, :numericality => { :greater_than_or_equal_to => 0, :less_than_or_equal_to => 100 }
:0、2、1.2、3.2:
validates :tax_rate, inclusion: { in: 0..5 }
それはのような値を許可します
希望すると助かります!
私が前にテストしていたものの、それを使用しないことにしたいくつかのバリデーションでは、まったく同じ構文を使用しました。ユーザーがその範囲外の値を入力すると、「値は含まれていません」というようなエラーが表示されます。ユーザーにはより意味のあるエラーが表示されるため、 ':greater_than_or_equal_to'のような解決策を選択しました。 – Tass
応答のためのThanx。やってみます。 –
フィールドは文字列か浮動小数点ですか?それが文字列でないなら、正規表現をしてはいけません。この例のようなものが良いでしょう。 <0 – Ultimation