У меня есть Order
модель с десятичным числом :total
. Я хочу подтвердить, что эта сумма составляет два десятичных знака, больше 0 и меньше миллиона.
validates :total, presence: true, format: { with: /\A\d+(?:\.\d{0,2})?\z/ }, numericality: { greater_than: 0, less_than: 100_000_000 }
Когда мой итог становится 1234567890.00
, возникает ошибка:
PG :: NumericValueOutOfRange: ОШИБКА: переполнение числового поля ДЕТАЛИ: Поле с точностью 11, шкала 2 должно округляться до абсолютного значения менее 10 ^ 9. : UPDATE "заказы" SET "tax_total" = $ 1, "total" = $ 2, "updated_at" = $ 3 ГДЕ "orders". "Id" = $ 4
Я также пытался добавить эту миграцию:
def self.up
change_column :orders, :total, :decimal, :precision => 11, :scale =>2
end
в моей модели, но ошибка все еще там.
Я хочу получить подтверждение здесь .