Out of ranger error, Type :: Integer во время теста rspec - PullRequest
1 голос
/ 30 июня 2019

Получение неудачного теста 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 test

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

1 Ответ

2 голосов
/ 01 июля 2019

В 4-байтовом INT поле можно сохранить до целого числа 2147483647.

7554736346861994060 намного больше, чем 2147483647, таким образом, оно занимает более 4 байтов.

Youнужен другой тип данных, который может поддерживать такое число.

Добавьте миграцию, чтобы изменить столбец на BigInteger, который должен хранить большое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...