2011-08-03 50 views
1

的对象我想创建两个对象引用另一个,我已经在之前创建的单个对象(:每个)块工厂女孩:创建关联到现有的对象

如。

# in my factories.rb file.. 
factory :blah_1 do 
    association :foo, :factory => :foo 
end 

... 

# in my spec.. 

before(:each) do 
    foo = Factory(:foo) 
end 

... 

foo.blahs << Factory(:blah_1) 
foo.blahs << Factory(:blah_1) 
# some test on foo to make sure the right thing happened 

当我运行该规范它会尝试两个blah_1和blah_2生成foo的实例,失败,因为我不允许重复的属性。

我倒是喜欢同时获得blah_1和blah_2到参考一个foo的工厂。

在此先感谢您的帮助:)

+0

你打算在代码中使用':blah_2'而不是':blah_1'说出最后一条语句吗? –

回答

0

我最终什么事这样做,我固定(请让我知道这是不好的形式!)..

# in my factories.rb.. 
factory :blah_1 do 
    # attributes, no associations 
end 

# in my spec.. 
before(:each) do 
    @foo = Factory(:foo) 
end 

... 

foo.blahs << Factory(:blah_1, :foo => @foo) 
foo.blahs << Factory(:blah_2, :foo => @foo) 

似乎很从我的角度看是合理的。

+0

是的,这是我的最终解决方案。 –