У меня есть две модели с простой has_many
ассоциацииРельсы Fabrication камень объединение создает множество объектов
class Usuario < ActiveRecord::Base
has_many :publicaciones, dependent: :destroy
end
class Publicacion < ActiveRecord::Base
belongs_to :usuario, dependent: :destroy
validates_presence_of :usuario
end
И вот переработчиков
Fabricator(:usuario_con_10_publicaciones) do
nombre { FFaker::NameMX.name }
publicaciones(count: 10)
end
Fabricator(:publicacion) do
texto { FFaker::Lorem.paragraphs }
usuario
end
Когда я использую второй он прекрасно работает, он создает одинPublicacion
и одинUsuario
> a = Fabricate :publicacion
> Usuario.count
=> 1
> Publicacion.count
=> 1
Но когда я использую первый, он создает десятьPublicaciones
но одиннадцатьUsuarios
, со всеми Publicaciones
, связанные только с последним.
> u = Fabricate :usuario_con_10_publicaciones
> Usuario.count
=> 11
> Publicacion.count
=> 10
Не должно создать только один Usuario
и десятьPublicaciones
?
Благодарим за помощь.
Спасибо за помощь, с помощью переходных процессов - хорошая идея, проблема с вашим предложением состоит в том, что неверно создавать 'Publicacion' без' Usuario'. Это решается с помощью 'Fabricate.build' вместо этого, как показано в ответе Пола Эллиотта. – 1087427