工厂女孩 - 传递协会数据

时间:2012-04-02 18:13:54

标签: ruby-on-rails factory-bot

我正在尝试更改保存关联时设置的属性

工厂:

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

保存的值将是'Alex'而不是'Tim'。有什么想法吗?

1 个答案:

答案 0 :(得分:9)

首先,您需要将关联添加到工厂:

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

然后你应该分两步进行:

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

假设您的模型关联等设置正常,这将没有问题。