2016-04-19 45 views
1

代碼比這裏更好的話FactoryGirl建我:: Class對象不上is_a返回true?(我::類)

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 
+0

嘗試在工廠中指定類名稱作爲字符串,這可能是由於一些重新加載問題 – Vasfed

+0

我在我的應用程序中嘗試過,並沒有看到您觀察到的內容。 –

+0

@Vasfed,這似乎已經解決了我的問題,謝謝!你能否從你的評論中添加一個我可以接受的答案? –

回答

2

嘗試指定的類名在工廠字符串:

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

由於代碼重裝工廠使用您的Company::Employee和類可確實不同類別。