我有一些ActiveRecord超类Product
和一个子类DiscountedProduct
共享同一个表,我有一些工厂用于我想要与子类一起使用的超类。
Factory(:product).class #=> Product
我想要找的是一个简写:
DiscountedProduct.create(Factory.build(:product).attributes)
注意:
我不使用Factory.attributes_for
以便建立所需的关联。
答案 0 :(得分:2)
好吧,看来factory_girl很好地支持了继承。
您可以通过以下方式定义工厂:
作为嵌套定义
factory :product do
name 'Product name'
factory :discounted_product do
discounted true
end
end
或作为链接定义
factory :discounted_product :parent => :product do
approved true
end