我試圖使用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'參數。 –