gpt4 book ai didi

ruby-on-rails - 超出范围错误,在 rspec 测试期间类型::整数

转载 作者:行者123 更新时间:2023-12-05 05:10:16 24 4
gpt4 key购买 nike

得到一个失败的 rspec 测试,说事件记录超出范围。不知道为什么会失败

这里是错误

Failure/Error: Order.create! params.merge(user: user, subscription: subscription, product: product)

ActiveModel::RangeError:
7554736346861994060 is out of range for ActiveModel::Type::Integer with limit 4 bytes

rspec 测试

context 'subscription order params' do
let(:subscription_order_params) { FactoryBot.attributes_for(:order,
party_user_id: subscription_user.party_id,
party_subscription_id: subscription.party_id,
party_product_id: product.party_id)}

it 'creates an order that belongs to a subscription customer' do
post :create, params: { order: subscription_order_params }, as: :json

expect(response.status).to eq 204
end
end

最佳答案

在一个 4 字节的 INT 字段中,您最多可以存储一个 2147483647 整数。

7554736346861994060 比 2147483647 大得多,因此需要超过 4 个字节。

您需要一种不同的数据类型来支持这样的数字。

添加迁移以将列更改为 BigInteger,它应该存储大数字。

关于ruby-on-rails - 超出范围错误,在 rspec 测试期间类型::整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56827956/

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