Мне нужно принять очень большие целочисленные значения в столбце postgres в таблице pre_transaction
. Имя столбца give_amount
.
Я попытался изменить тип столбца на bigint
с помощью:
change_column :pre_transactions, :give_amount, :bigint
, но при попытке сохранить запись даже после перезапуска все равно появляется следующая ошибка консоль:
ActiveModel::RangeError (1000000000000000000000 is out of range for ActiveModel::Type::Integer with limit 8 bytes)
Я также понял, что если я запускаю PreTransaction
в консоли rails, столбцы bigint отображаются как столбцы integer
(то же самое для внешних ключей, которые указаны в схеме как bigint). но выглядят как целое число на рельсах c), что странно.
Именно поэтому я изменил тип столбца на float
. Теперь, когда я запускаю PreTransaction
в консоли rails, я вижу столбец типа float
, но теперь, когда я пытаюсь сохранить запись, она сохраняет, но округляет до 1,0.
Итак, как я могу хранить очень большие целые числа в базе данных?