ActiveModel::Type::Integer 的最大数量

Max number for ActiveModel::Type::Integer

我正在尝试将数字 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。

这是一个带符号的 4 字节整数。

所以它可以有的最大值是 2³¹ - 1

2147483647