如果我有 2 个模型 - 例如。商店和品牌,我想为拥有 3 到 10 个品牌的商店建模,使用工厂女郎做这件事的好方法是什么?
factory :brand do |b|
b.name "Hip Brand"
b.url { "http://#{name}.com" }
end
factory :shop do |s|
name "Cool Shop"
after_create {
count = 0
(5..10).to_a.sample.times do
count += 1
Factory(:brand, :shops => s, :name => "brand #{count}")
end
}
end
这显然不是这样做的方法,但应该让我了解我想要实现的目标!
最佳答案
我现在无法测试,但这应该可以:
Factory.define :brand, :class => Brand do |b|
b.name "Hip Brand"
b.url { "http://#{name}.com" }
end
Factory.define :shop, :class => Shop do |s|
s.name "Cool Shop"
s.brands {
count = 0
Array(5..10).sample.times.map do
Factory.create(:brand, :name => "Brand #{count += 1}")
end
}
end
或者这个:
Factory.define :shop, :class => Shop do |s|
s.name "Cool Shop"
s.brand_ids {
count = 0
Array(5..10).sample.times.map do
Factory.create(:brand, :name => "Brand #{count += 1}")[:id]
end
}
end
关于ruby - Factory Girl - HABTM 的可变数量的关联对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268609/