FactoryGirl构建的My :: Class对象在is_a上没有返回true?(My :: Class)

时间:2016-04-19 10:34:40

标签: ruby-on-rails factory-bot

代码优于此处的文字

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

这是一个错误吗? (注意,如果我使用像用户这样的简单模型,则返回true)。该错误可能来自名称空间的添加吗?

# 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

1 个答案:

答案 0 :(得分:2)

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

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

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