1
我一直遇到同样的问题,如果我是唯一遇到此问题的人,并且期望有人有更好的方法来做到这一点,我会感到惊讶。当我创建一个具有相关工厂(关联)的工厂时,父级模型不会使用已添加的模型进行更新。可能更容易在代码中解释。factory_girl - has_many关系和刷新父模型
说我有:
Factory.define :company do |a|
a.name 'Acme'
end
Factory.define :office do |a|
a.name 'London'
a.association :company, :factory => :company
end
,我执行此代码:
london = Factory.create(:office)
sanfran = Factory.create(:office, :name => 'San Fran' , :company = london.company)
那么如果我运行这个测试
london.company.offices.count.should eql(2)
失败,因为公司的Acme是以前实例伦敦甚至是圣弗兰创建,并且因为company.offices.new不用于创建新模型, mpany模型从未更新。
我已经能够解决此问题的唯一方法是写我的测试如下:
london.company(true).offices.count.should eql(2)
其强制进行刷新。
但是,这在我的测试中每次都做得不是很理想,特别是当它正在测试的代码不应该依赖于此时。
请您提供更多的上下文吗?这些工厂看起来应该是他们应该工作的 - 我正在成功地使用这些工厂 - 所以也许线索在测试中。张贴这些,我会看看。 – 2011-06-01 08:31:22
':company = london.company'是吗?它不应该是':company => london.company' – 2011-06-03 16:37:38