1

私のアプリケーションでは、アカウントは単一の所有者(ユーザー)と複数のユーザーを持つことができます。親モデルを自己参照するファクト・ガール・アフィニティー

# account_factory_static.rb 
FactoryGirl.define do 
    factory :account do 
    name 'demoaccount' 
    association :owner, :factory => :user 
    end 
end 

# user_factory_static.rb 
FactoryGirl.define do 
    factory :user do 
    email '[email protected]' 
    first_name 'Jon' 
    last_name 'Doe' 
    password 'password' 
    end 
end 

を、以下のようにそれらを使用します:私のテストでは

私はこれを行う

let(:account) { FactoryGirl.create(:account) } 

問題は、私は@account.users << @account.ownerような何かをする方法がありませんので、今account.users.count0に等しいということですユーザーがサインアップしたときに私のコントローラーのように。

質問は、関連するアカウントのIDをFactoryGirlのユーザーのaccount_id属性に追加するにはどうすればよいですか?

つまり、どのようにFactoryGirlでそれを行いますか?

ありがとうございました。

+0

あなたは、これらのモデル間の関連についての情報を提供していただけますか? 'account'は' owner'だけでなく 'has_many:users'のようなものも持っていますか? – Ngoral

答えて

1

あなたはそれのためにafter :createブロックを使用することができます。

FactoryGirl.define do 
    factory :account do 
    name 'demoaccount' 
    association :owner, :factory => :user 

    after :create do |account| 
     account.users << account.owner 
    end 
    end 
end