我有兩個工廠分別爲我的Company
和Employee
模型。 Employee
在belongs_to與Company
的關係。這裏是我的兩個工廠:避免在循環中複製記錄
factory :company do
name "foo company"
end
factory :employee do
company
name 'Willy Bytes'
end
有一些場合,我需要遍歷數組數據,並相應地填充新Employee
記錄來測試針對我的規格不同的條件。爲了說明這一點,我用下面的規格來測試我的包容驗證之一:
it "should be valid if they like red blue or green" do
["red","blue","green"].each do |c|
FactoryGirl.build(:employee, :favourite_colour => c).should be_valid
end
end
it { FactoryGirl.build(:upload, :favourite_colour => "other").should_not be_valid }
不過,我對母公司名場,當我試圖建立其產生錯誤唯一性約束記錄。有沒有一種智能的方法來解決/避免這個問題?我經常遇到這些類型的規格,通常我會做的是定義一個單獨的Company
工廠,並將其分配給循環中的每個記錄,但它不直觀並導致大量重複。序列是唯一的解決方法嗎?
我希望有一種方法可以避免創建多餘的公司使用Factory Girl完全記錄。我幾乎想了一些[find_or_create_by_name](http://api.rubyonrails.org/classes/ActiveRecord/Base.html#label-Accessing+attributes+before+they+have+been+typecasted)。 – Noz