У меня есть две модели Project
и ProjectImage
. A project
должен иметь по крайней мере один project_image
. Это хорошо работает в моем приложении, но когда дело доходит до тестирования, я не знаю, как подойти к нему.FactoryGirl, определяющий объект, который должен иметь хотя бы один объект
У меня есть проект завода:
factory :project do
title { Faker::Lorem.word(5) }
intro { Faker::Lorem.word(5) }
association :user, factory: :user
end
И мой project_image завод.
factory :project_image do
image { File.open(Dir.glob(File.join(Rails.root, 'sampleimages/projects', '*')).sample) }
association :project, factory: :project
association :user, factory: :user
end
Очевидно, что мой завод проекта недействителен, так как он должен иметь хотя бы одно изображение. Поэтому я думал, что это требует ассоциации, но это просто создаст круговую зависимость. Они зависят друг от друга, поэтому я уверен, как создать одно без другого.
У меня до сих пор такая же ошибка – ediblecode
Вы пытались создать/создать записи через заводы на консоли? Поместите factory_girl gem в группу тестирования/разработки, запустите консоль в режиме песочницы 'rails c -s', выполните' require factory_girl_rails' и попробуйте отладить объекты, например 'project = FactoryGirl.build (: project); project.project_images; project.valid? ' – gotva
еще одна идея, почему у вас все еще есть проблема: попробуйте этот код в' after (: build) '' project.project_images = [FactoryGirl.build (: project_image)] ' – gotva