Factory Girl -- 理解关联

3
我还没有找到一个清晰的解释来说明association方法是做什么的以及如何正确使用它——我看到有几个例子,模型Alpha有很多Beta,然后在使用工厂创建新的Beta时,我们说beta.association :alpha或类似的东西。但是Alpha也与Beta相关联(Beta belongs_to Alpha)……所以我很困惑。我认为关联(至少在正常的英语中)通常是相互的,所以我不理解这个方法到底是做什么的。能否有人请澄清一下?
除了在广泛的概念层面上理解它之外,我还想知道它在句法层面上确切的作用是什么(例如,它是否像attr_accessor那样添加方法?实际上它到底是在做什么?)
对不起,我还没有找到一个清晰的解释——如果有人能够向我解释一下,那就太好了!

你应该在这里发布你的解释或者删除这个问题。其他人会来到这里期望得到答案 :) - ayckoster
什么?我来这里是想找个人给我解释一下……?如果我已经知道答案,我就不用问了 ^.^ - Kvass
我发现我的帖子可能会被误解 -- 我编辑了它以使得更清晰,我是在寻求来自Stack Overflow社区的解释。 - Kvass
1个回答

1

根据我的经验,当你需要通过工厂创建一个对象时,如果这个对象需要实例化关联对象,那么你就需要在FactoryGirl中定义“关联”(association),否则你的新对象将是无效的。

假设你有公司(Company)和工人(Worker)模型,并且在你的应用程序中有验证规则,防止使用无效的company_id属性创建工人。你可以有没有工人的公司(这就是为什么你不应该在工厂中定义工人的关联),但是你不能没有公司的工人。因此,你需要在工厂中添加关联来为每个创建的工人懒惰地实例化公司。

因此,总结一下 - 当你的模型中有belongs_to,并且你的关联模型也有存在性验证时,你需要定义关联。


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