фабричный бот + PostgreSql не инициализирует строковый столбец с именем "uuid" - PullRequest
0 голосов
/ 28 января 2020

Есть странная проблема, с которой я сталкиваюсь. У меня есть модель, скажем, 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 не показывает имя таблицы. Итак, я запутал его главным объектом «книга».

...