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.count等於0因爲我沒有辦法做到像@account.users << @account.owner就像我在用戶註冊時在控制器中所做的一樣。

問題是如何將關聯帳戶的ID添加到FactoryGirl中用戶的account_id屬性中?

換句話說,你如何在FactoryGirl中做到這一點?

謝謝。

+0

你能不能,請提供有關這些模型之間的關聯信息? 「賬戶」不僅有「所有者」,還有'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