我有两个工厂分别为我的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