我有一个典型的继承模式,但是父对象与另一个模型有关联,而且子对象也与其他模型有关联。
class MyBase < ActiveRecord::Base
belongs_to :game, inverse_of: :my_base
validates :game, presence: true
end
class Child < MyBase
self.table_name = 'children'
belongs_to :user, inverse_of: :child
validates :user, presence: true
end
我知道我可以告诉工厂女孩使用特定的类但是当我使用子类作为构造函数时,它不能为父类创建关联,反之亦然。
factory :child, class: MyBase, parent: :my_base do
association :user, strategy: :build
end
在linted:
时,这给了我无效工厂 child - can't write unknown attribute 'user_id' (ActiveModel::MissingAttributeError)
我如何设置我的工厂将创建两个关联?
PS:这是一个多表继承情况。
答案 0 :(得分:1)
通过将子类用作&#34;类&#34;使其工作。名:
FactoryGirl.define do
factory :child, class: Child, parent: :my_base do
association :owner, factory: :user, strategy: :build
end
end