2012-04-02 8 views
3

関連データ受け渡し:工場の女の子私は団体</p> <p>工場保存するときに設定されている属性を変更しようとしています

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')) 

保存された値は「アレックス」になります「ティム」ではない。何か案は?

+0

同様の工場では再生できません。工場の定義には 'course.user'がありません(意図的だったかもしれませんが)私のシステムでは問題ではありません。問題を再現するために、より多くのデータ(宝石のバージョン、モデル、データベースの移行など)を提供することができます。 –

答えて

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 

そして、あなたのモデル団体やなが設定されていると仮定するとこれは問題ありません。

関連する問題