我試圖添加驗證,以防止用戶在小數點前輸入超過 6 位數字,并且在小數點后僅輸入 3 位。我將精度設定為 8,比例為 2,但是它會產生錯誤頁面。我只想阻止用戶輸入超出格式集的內容。我已將最大長度設定為 9。
uj5u.com熱心網友回復:
那么你的精度和規模是關閉的。根據您的描述,它應該是 (9,3) 而不是 (8,2)。
然后以下應該作業:
class MyClass < ApplicationRecord
validates :my_float, numericality: {less_than: 1_000_000.0, greater_than_or_equal_to: 0.001}
end
這將驗證該數字是否小于 100 萬(小數點左側 6 位)并且大于或等于小數點右側 3 位的 0.001。如果您需要處理負數,這可能會更有趣。
你也可以選擇類似的東西:
class MyClass < ApplicationRecord
validates :my_float, format: { with: /-?\d{1,6}\.\d{1,3}/}
end
驗證可選的負數,后跟 1-6 位數字,后跟句點,后跟 1-3 位數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/488883.html
