Я сталкиваюсь с проблемой при создании записи через FactoryBot, проблема возникает только в среде test
.
Когда я запускаю команду на консоли development :
FactoryBot.create(:accounting_pbs_reservation, factor: 3.0)
(столбец factor
также определен на фабриках, но я хочу передать его явно)
Тогда он правильно выполняется и создается, но когда я запускаю команду на test environment, затем выводится ошибка:
ActiveRecord::NotNullViolation:
Mysql2::Error: Column 'factor' cannot be null:
INSERT INTO `accounting_pbs_reservations` (`start`, `rl_walltime`, `factor`)
VALUES (1503468000, 1430000, 3.0)
Даже если представлен столбец factor .
Проблема также возникает, когда я хочу создать экземпляр модели в контроллере RSpe c.
Кто-нибудь сталкивался с такой же проблемой? Схема базы данных для test
и development
Схема базы данных для factor
установлена как
| Field | Type | Null | Key | Default | Extra
| factor | double | NO | | 1 |
Определение FactoryBot довольно дамп:
FactoryBot.define do
factory :accounting_pbs_reservation do
factor { 1.0 }
start { 1_503_468_000 }
rl_walltime { 1_430_000 }
end
end
RSpe c определение, где происходят ошибки:
require 'rails_helper'
RSpec.describe AccountingPbsReservationsController, type: :controller do
let(:valid_accounting_pbs_reservation) { FactoryBot.create(:accounting_pbs_reservation) }
let(:valid_attributes) { FactoryBot.attributes_for(:accounting_pbs_reservation) }
...
context 'when logged as admin' do
login_admin
it "returns a success response" do
get :show, params: { id: valid_accounting_pbs_reservation.to_param expect(response).to be_successful
end
...