我有一個問題,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
問題
>> tail = Factory.build :tail
=> #<Tail _id: 4d839b5930efd431c7000008, >
>> tail.cat.tails.length
=> 2 # this should be 1
>> cat = Factory.build :cat
=> #<Cat _id: 4d839b6c30efd431c700000b, >
>> cat.tails.length
=> 1