2011-08-03 48 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

是的,這是我的最終解決方案。 –