Есть странная проблема, с которой я сталкиваюсь. У меня есть модель, скажем, Book, она имеет строковый атрибут uuid с не нулевым ограничением в базе данных PG. Когда я пытаюсь создать объект Book с помощью фабричного бота. Выдает исключение базы данных с ненулевым ограничением. Но, с другой стороны, я могу легко создавать объекты книг на рельсах.
Фабрика:
FactoryBot.define do
factory :book do
name { 'Fantacy' }
description { 'blah-blah' }
uuid { SecureRandom.uuid }
association :author
end
end
Исключение:
ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR: null value in column "uuid" violates not-null constraint
DETAIL: Failing row contains (7, fantacy, blah-blah, null).
Заводская версия бота: 5.1. 1
Обновление: проблема была в другой ассоциации "автор", которой не хватало инициализации атрибутов UUID. и исключение ActiveRecord не показывает имя таблицы. Итак, я запутал его главным объектом «книга».