6

目前没有任何使用 Factory Girl 4.1 的最新答案(我可以找到) - 您如何在工厂内部设置多对多关系?

例如,我有学生教室,它们使用连接表处于多对多关系,到目前为止,我有以下设置:

factory :classroom do
    name "Foo Class"
    ...
end

factory :student do
   name "John Doe"
   ...
end

factory :student_with_classroom, :parent => :student do
    after(:build) {|student| student.classrooms << classroom}
end

然而,这会导致:

NameError:
       undefined local variable or method `classroom' for #<FactoryGirl::SyntaxRunner>

我的尝试在很大程度上是猜测,因为我没有找到任何不推荐使用的语法来完成此操作。

4

2 回答 2

19

实际上,我设法找到了我一直在寻找的答案,隐藏在这个 SO 中的大量其他答案之下:如何在工厂女孩中创建 has_and_belongs_to_many 关联

factory :classroom do
    name "Foo Class"
    ...
end

factory :student do
   name "John Doe"
   ...
end

factory :student_with_classroom, :parent => :student do
    classrooms {[FactoryGirl.create(:classroom)]}
end
于 2013-01-04T18:51:01.153 回答
1

查看这篇 SO 帖子:如何使用 has_many 关联在 FactoryGirl 中设置工厂。它会将您指向https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md;搜索has_many

于 2013-03-14T06:17:28.967 回答