我试图使用Factory Girl来生成具有多态属性的模型实例。例如,属性可以有一个假设,租户可以有一个假设,属性可以拥有多个租户。我想使用Factory Girl来生成:property_with_assumption或者:tenant_with_assumption。工厂女孩未初始化的常量NameError在Rails 4中
我可以做到这一点没有问题属性:
FactoryGirl.define do
factory :property do
...fields...
end
factory :property_with_assumption do
after(:create) do |property|
FactoryGirl.create(:assumption, assumable: property)
end
end
end
而且我对房客类似的定义:
FactoryGirl.define do
factory :tenant, :class => 'Tenant' do
...fields...
end
factory :tenant_with_assumption do
after(:create) do |tenant|
FactoryGirl.create(:assumption, assumable: tenant)
end
end
end
但是当我尝试
FactoryGirl.create(:tenant_with_assumption, property: [valid property])
我得到
NameError: uninitialized constant TenantWithAssumption
为什么它只适用于一种型号,而不适用于其他型号?提前致谢。
感谢您的快速回复。为什么我需要Tenants上的class参数,但不需要属性? – thusson
':property_with_assumption'也不起作用。你可能不会在任何地方调用它。如果工厂名称不同于类名称的下划线版本,则需要提供':class'参数。 –