2011-07-19 48 views
2
我遇到一些麻煩factory_girl協會

factory_girl創建VS構建和協會

Factory.define :account do |f| 
    f.sequence(:email) {|n| "john#{n}@example.com" } 
    f.password "secret" 
    f.confirmed_at 2.days.ago.to_s(:db) 
    f.name "John Doe" 
    f.seller false 
    f.admin false 
end 

Factory.define :request do |f| 
    f.association :account 
    f.message 'Test message.' 
end 

而這裏的問題:

當我做=廠(:請求),a.account =>零,但是當我做一個= Factory.build(:請求)時,a.account是正確的。

任何想法,爲什麼這可能是?

感謝

+1

這裏沒有驗證問題?如果你在創建之後做了一個錯誤怎麼辦? – apneadiving

+0

請求模擬器上沒有驗證錯誤...它被保存但沒有account_id,這讓我懷疑在request.account上是否有驗證錯誤,我可以通過任何方式檢查該錯誤? – Cezar

+0

我也不確定爲什麼SQL在創建請求之前看起來像這樣「SELECT'accounts'。* FROM'accounts' WHERE'accounts'.'email' IS NULL LIMIT 1」 – Cezar

回答

0

廠(:請求)調用默認的策略,你改變了什麼地方?

+0

這不是一個答案,只是一個評論 – apneadiving

+0

改變什麼? – Cezar

+0

factory_girl讓您有機會覆蓋用於構建對象的默認策略。在任何情況下查看上面的代碼,你確定你還沒有錯過password_confirmation字段? – kain