gpt4 book ai didi

ruby-on-rails - Rails 6,ActiveRecord 将 float 或 bigint 列类型视为整数

转载 作者:行者123 更新时间:2023-12-03 17:26:04 25 4
gpt4 key购买 nike

我需要在表 pre_transaction 上的 postgres 列上接受非常大的整数值.列名是 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 但在 rails c 上显示为整数的外键相同),这很奇怪。

这就是为什么我将列类型更改为 float .现在当我运行时 PreTransaction在 rails 控制台中,我确实看到该列的类型为 float但是现在当我尝试保存它保存的记录时,但四舍五入为 1.0。

那么,如何在数据库中存储非常大的整数呢?

最佳答案

而不是 :bigint使用 :decimal类型。它避免了浮点舍入不一致,并允许大数。

关于ruby-on-rails - Rails 6,ActiveRecord 将 float 或 bigint 列类型视为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60855415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com