У меня проблема, когда after_build, похоже, не запускается после фактической сборки. Как показано в примере ниже, after_build не должен создавать второй хвост при вызове через Factory.build: tail, поскольку хвост уже есть.
Кто-нибудь знает, как это решить? Или как сделать так, чтобы Factory Girl вел себя так, как ожидалось.
Не обращайте внимания на тот факт, что у кошек обычно нет нескольких хвостов и т. Д.:)
модели
class Cat
include Mongoid::Document
embeds_many :tails
end
class Tail
include Mongoid::Document
embedded_in :cat
end
Фабрики
Factory.define :cat do |a|
a.after_build do |cat|
Factory.build :tail, :cat => cat if cat.tails.empty?
end
end
Factory.define :tail do |a|
a.association :cat, :factory => :cat
end
проблема
* * 1010