2012-04-02 72 views
3

我試圖改變其節能協會工廠女孩 - 通過關聯數據

工廠時設置的屬性:

Factory.define :course do |course| 
course.title "Course 1" 
end 

Factory.define :user do |user| 
user.name "Alex" 
end 

執行

Factory(:course, :user => Factory(:user, name: 'Tim')) 

保存的值將是「亞歷克斯」不是'Tim'。有任何想法嗎?

+0

我不能用類似的工廠重現它。你的工廠定義缺少'course.user'(可能是故意的),但在我的系統中並不重要。您可能想要提供更多數據(gem版本,模型,數據庫遷移等)以重新創建您的問題。 – 2012-04-02 19:29:16

回答

8

首先,你需要的關聯添加到您的工廠:

Factory.define :course do |course| 
    course.title "Course 1" 
    course.association :user 
end 

那麼你應該做的2個步驟:

user = Factory.create :user, :name => "Tim" 
course = Factory.create :course, :user => user # or :user_id => user.id 

並假設模型協會,這樣的設置起來很好,這將工作沒有問題。