FactoryGirl中的多对多关联如何工作?

时间:2011-09-08 20:30:05

标签: ruby-on-rails ruby factory-bot

  

可能重复:
  How to make has_many :through association with fixtures?

我尝试使用FactoryGirl来构建我的测试数据。但我不知道如何建立多对多的协会。

最后,我google-copy-paste一个片段:

factory :tagging do 
  question { |a| a.association(:question) } 
  tag { |a| a.association(:tag) } 
end

(通过标记问题has_many标签,反之亦然)

效果很好。但是这个奇怪的语法是什么?当我在属性名称后放置一个块时会发生什么?官方自述文件没有告诉我。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

正如您所描述的,tagging模型至少包含两列:question_idtag_id。您可以手动设置它们,但在此之前应创建新对象。 FactoryGirl通过其关联功能为您完成。它创建新对象(您将该对象的工厂指定为关联函数中的参数),获取其ID并将其设置为适当的字段。