2016-04-19 4 views
1

コードは言葉よりも優れています内蔵され、ここでFactoryGirlマイ:: Classオブジェクトがのis_aにtrueを返していません?(マイ::クラス)

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

そのバグですか? (私がユーザーのようなもっとシンプルなモデルでそれを行うなら、それは真を返します)。名前空間の追加によってバグが発生する可能性はありますか?

クラス

# 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とクラスを再ロードすることは確かに異なるクラスすることができます。

関連する問題