【发布时间】:2018-05-21 20:46:32
【问题描述】:
我正在尝试将数字 3980040429 存储为对象的 ID,但出现以下错误:
ActiveModel::RangeError (3980040429 is out of range for ActiveModel::Type::Integer with limit 4 bytes)
这4个字节不等于4 294 967 296吗?
4 bytes × 8 bits = 32 bits
2³² = 4 294 967 296
我显然错了 - 我可以为 ID 保存的最大整数是多少?
我在 Rails 5.2 和 Postgres 9.6 上。
【问题讨论】:
-
也许它是一个有符号整数。
2**31,加号或减号... -
看来这里接受的答案回答了你的问题stackoverflow.com/a/33517626/2199600
标签: ruby-on-rails numbers byte ruby-on-rails-5 activemodel