使用 FactoryGirl 在 Ruby 中将工厂创建为不同的类
我有一些 ActiveRecord 超类 Product
和一个子类 DiscountedProduct
共享同一个表,并且我有一些想要与子类一起使用的超类工厂。
Factory(:product).class #=> Product
我试图找到的是以下内容的简写:
DiscountedProduct.create(Factory.build(:product).attributes)
注意: 我不使用 Factory.attributes_for 来构建所需的关联。
- FactoryGirl v2.3.2
- Rails 3.0.4
I have some ActiveRecord superclass Product
and a subclass DiscountedProduct
that share the same table and I have some factories for the superclass that I want to use with the subclass.
Factory(:product).class #=> Product
What I am trying to find is a shorthand for:
DiscountedProduct.create(Factory.build(:product).attributes)
NOTICE:
I don't use Factory.attributes_for
so that the needed associations get built.
- FactoryGirl v2.3.2
- Rails 3.0.4
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
嗯,看来factory_girl 很好地支持了继承。
您可以通过以下任一方式定义工厂:
作为嵌套定义
或作为链接定义
Well, seems factory_girl supports quite well the inheritance.
You can define your factory either way :
As a nested definition
or as a linked definition