Factory Girl在Rails 4中未初始化的常量NameError

thu*_*son 3 ruby-on-rails ruby-on-rails-4 factory-bot

我正在尝试使用Factory Girl生成具有多态依赖项的模型实例.例如,属性可以具有_one假设,租户可以具有假设,而属性可以具有多个租户.我想使用Factory Girl生成:property_with_assumption或a:tenant_with_assumption.

我可以使用属性做到这一点没有问题:

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
Run Code Online (Sandbox Code Playgroud)

我对租户有类似的定义:

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
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试

FactoryGirl.create(:tenant_with_assumption, property: [valid property])
Run Code Online (Sandbox Code Playgroud)

我明白了

NameError: uninitialized constant TenantWithAssumption
Run Code Online (Sandbox Code Playgroud)

为什么它适用于一种型号而不适用于另一种型号?提前致谢.

Mau*_*res 6

您需要提供:class参数:

factory :tenant_with_assumption, :class => 'Tenant' do
Run Code Online (Sandbox Code Playgroud)