我没有找到association
方法的功能以及如何正确使用它的明确解释 - 我看到几个模型Alpha has_many Beta的例子,然后在使用工厂创建新的Beta时我们说beta.association :alpha
或类似的东西。但不是Alpha也与Beta(Beta belongs_to Alpha)有关......所以我只是很困惑。我认为一个关联(至少在普通英语中)通常是相互的,所以我不明白这个方法应该做什么。有人可以澄清一下吗?
除了在广泛的概念层面上理解它之外,我还想确切地知道它在语法层面上的作用(即,它是否添加像attr_accessor那样的方法?就像这实际上在做什么?)
对不起,我还没有找到明确的解释 - 如果有人能向我解释这将是伟大的!!
答案 0 :(得分:1)
根据我的经验,当您需要在按工厂创建其他对象时实例化关联对象时,在FactoryGirl中定义“关联”,如果没有此关联,则新对象将无效。
假设您有公司和工作人员模型,并且在您的应用程序中,您有验证可以阻止创建具有无效company_id属性的Worker。您可以让公司没有工人(这就是为什么您不应该为工厂中的工人定义关联),但是您不能没有公司的工人。然后,您将工厂中的关联添加到每个创建的工作程序的lazy-instantiate Company。
总而言之 - 您在模型中拥有belongs_to
时以及模型中的关联也具有在线验证时定义关联。