2011-08-16 76 views
1

我有兩個階級,兩條工廠:FactoryGirl和協會

class User 
belongs_to :company 
end 

class Company 
has_many :users 
end 

Factory.define :user do |u| 
u.name "Max" 
u.association :company 
end 

Factory.define :user2, :parent => :user do |u| 
u.name "Peter" 
end 

Factory.define :company do |c| 
c.name "Acme Corporation" 
end 

我如何能實現在同一個公司有兩個用戶?在運行測試時,FactoryGirl會創建兩個公司記錄,但我希望兩個用戶都連接到一條記錄。

任何提示?

+2

我認爲你正在使用FactoryGirl作爲直接替代燈具。您的用戶唯一的區別就是名稱。工廠用於創建新用戶而無需指定所有內容。請查看[入門](https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md) – Serabe

+0

可能會有更多的差異。這只是一個例子,真正的代碼看起來不同。儘管如此,感謝您的幫助。我今天有點慢... ;-) – auralbee

+0

當我搬到FactoryGirl時,我發現自己將燈具翻譯成工廠,所以我認爲它可能值得注意。 – Serabe

回答

5
@company = Factory.create :company 
@first_user = Factory.create :user, :company => @company 
@second_user = Factory.create :user, :company => @company 

這樣的事情應該做,但請先閱讀我的評論,我想你對工廠女孩有錯誤的想法。

3

試試這個:

user1 = Factory(:user) 
user2 = Factory(:user2, :company => user1.company)