2015-05-10 43 views
0

我有一個名爲Message的工廠,其中HABTM Users。我想在Message工廠內模擬sender_id。 如果我做的:在另一個模型的工廠內使用模型屬性 - 導軌

sender_id { FactoryGirl.build(:user}.id } 

我得到:

FactoryGirl:DuplicateDefinitionError 

我怎麼可以參考另一家工廠的數據屬性(id在我的情況)?

回答

1

即使它有效,你所做的是build一個用戶(這意味着不保存到數據庫),並嘗試獲取未保存記錄的id,這肯定是一種錯誤的方式。

你可以做什麼,是從字面上創建對象sender並使用association方法將其與用戶相關聯。根據FactoryGirl的指南,您可以編寫:

factory :message do 
    association :sender, factory: :user 
end 

FactoryGirl有一組非常廣泛的關聯選項。通過這種方式,您可以創建belongs_to關聯,但也可以使用回調after_create創建has_many。請參閱associations part in Getting Started。這是關於工廠的非常豐富的知識來源。

相關問題