Factory Girl - 传递关联数据

4

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

工厂:

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”。有任何想法?

我无法使用类似的工厂重现它。您的工厂定义缺少 course.user(也许是有意为之),但在我的系统上并不重要。您可能需要提供更多数据(gem版本、模型、数据库迁移等)来重新创建您的问题。 - Nash Bridges
1个回答

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接