Я считаю, что это проблема порядка операций. #create
FactoryBot немедленно сохранит новую запись csr
в базе данных, до того, как оператор <<
попытается создать связь между записями.
Попробуйте изменить create
на build
и удалите certificate_content_id: cc.id
. build
должен создавать, но не сохранять запись. И тогда <<
создаст связь и сохранит запись.
Редактировать : в качестве альтернативы, вы можете оставить #create
и просто удалить <<
:
after :create do |cc|
create(:csr, signed: true, certificate_content_id: cc.id)
end
Это сработало бы так же хорошо.