对于association
方法的作用以及如何正确使用它,我还没有找到一个清晰的解释——我看到了几个例子,其中模型alpha有很多beta,然后在使用工厂创建新beta时,我们会说beta.association :alpha
或类似的话。但是阿尔法不是也和β有关吗(β属于阿尔法)。所以我很困惑。我认为一个协会(至少在正常英语中)通常是相互的,所以我不明白这种方法应该做什么。有人能澄清一下吗?
除了在广泛的概念层面上理解它之外,我还想确切地知道它在语法层面上是做什么的(例如,它是否添加了attr_accessor这样的方法?就像这到底在做什么??)
对不起,我只是没有找到一个明确的解释-如果有人能解释给我听,那就太好了!!
最佳答案
根据我的经验,当您需要在工厂创建其他对象时实例化关联对象时,您可以在FactoryGirl中定义“关联”,如果没有此关联,您的新对象将无效。
假设您有公司和员工模型,并且在您的应用程序中有阻止创建具有无效公司id属性的员工的验证。你可以有没有工人的公司(这就是为什么你不应该定义工厂工人的协会),但你不能有没有公司的工人。然后,在factory中添加关联,以便为创建的每个worker延迟实例化company。
总而言之,当您在模型中有belongs_to
时定义关联,当您在模型中的关联也有存在性验证时定义关联。