0

我有一家叫MessageHABTM的工厂Users。我想sender_idMessage工厂里嘲讽。如果我做:

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

我得到:

FactoryGirl:DuplicateDefinitionError

如何引用另一个工厂的数据属性(id在我的情况下)?

4

1 回答 1

1

即使它有效,您所做的是build用户(这意味着不保存到数据库)并尝试获取id未保存的记录,这一定是错误的方式。

你可以做的,是从字面上创建对象并使用方法sender将它与用户相关联。association根据 FactoryGirl 的指南,您可以编写:

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

FactoryGirl 有一组非常广泛的关联选项。这种方式允许您创建belongs_to关联,但也可以has_many使用回调创建after_create

请查看Getting Started 中的关联部分。它是关于工厂的非常丰富的知识来源。

于 2015-05-10T19:52:38.520 回答