2012-11-12 12 views
24

継承ユーザモデルと工場を定義します。 あなた自身を繰り返さないで書くことを続けてください。どのように私はこの問題を次しまった

FactoryGirl.define do 
    factory :user do 
    name "name" 
    bla "bla" 

    factory :custom_user do 
     customfield "customfield" 
    end 
    end 
end 

このクラスは「ユーザー」でもあるので、これはうまくいきません。 「ユーザー」では、カスタムフィールドがここで定義されていないため、無効なエラーが表示されます。 そのようなものを具体化するための良い方法、方法、方法がありますか?

答えて

44

あなたはこれを試すことができます。

factory :user do 
    name "name" 
    bla "bla" 
end 

factory :custom_user, class: CustomUser, parent: :user do 
    customfield "customfield" 
end 

の詳細情報については:Inheritance

+1

それは親で働いていた...しかし、私はクラスを追加する必要がありますいや: - これはまさに私がに探していた答えである – bulleric

+0

(ユーザー:custom_user、クラス:CustomUser、親:工場)CustomUser>私の問題。私はこれを何度もアップヴォートすることができれば幸いです。 –

11

CustomUserクラスをcustom_userファクトリに追加するだけです。それは私のために働く。あなたがネストされたとき:userは、親がUserであることを意味しますが、より簡単です。

FactoryGirl.define do 
    factory :user do 
    name "name" 
    bla "bla" 

    factory :custom_user, class: CustomUser do 
     customfield "customfield" 
    end 
    end 
end 
関連する問題