FactoryGirl 构建的 My::Class 对象在 is_a 上 return 不正确?(My::Class)

FactoryGirl built My::Class object doesn't return true on is_a?(My::Class)

此处代码胜于文字

e = FactoryGirl.build(:company_employee)
e.class                    # => Company::Employee
e.is_a?(Company::Employee) # => false

这是一个错误吗? (请注意,如果我使用像用户这样的更简单的模型来执行此操作,则 returns 为真)。该错误可能来自命名空间添加吗?

# factories/company_employee.rb
FactoryGirl.define do
  factory :company_employee, class: Company::Employee do
    ...
  end
end

# models/company/employee.rb
class Company::Employee < Professional
  ...
end

尝试在工厂中将 class 名称指定为字符串:

factory :company_employee, class: 'Company::Employee' do

由于代码重新加载,您在工厂中使用的 Company::Employee 和 class 可能确实不同 class。