2011-06-25 146 views
3

我還沒有找到什麼association方法原理,以及如何正確地使用它解釋清楚的認識協會 - 我看幾個例子模型的Alpha測試版的has_many,然後使用一個工廠創建一個新的測試版時我們說beta.association :alpha或者其他的東西。但不是Alpha也與Beta(Beta belongs_to Alpha)相關......所以我只是很困惑。我認爲一個協會(至少在正常的英語中)通常是相互的,所以我不瞭解這種方法應該做什麼。有人可以澄清這一點?工廠女孩 -

除了在廣泛的概念層面上理解它,我還想知道它在語法層面上究竟做了什麼(即它是否添加了像attr_accessor這樣的方法?像這個實際做的那樣?)

對不起,我只是還沒有找到這種明確的解釋 - 如果任何人都可以解釋這對我來說將是巨大的!

+0

您應該在此處發佈您的移植或刪除問題。其他人會來這裏期待一個答案:) – ayckoster

+0

什麼?我來到這裏尋找有人向我解釋這個......?如果我有答案,我自己的問題,我不會要問吧^^ – Kvass

+0

我看到我的帖子能在這方面一直在誤解 - 我編輯它,使其更清楚我一直在尋找從一個解釋堆棧溢出社區 – Kvass

回答

1

從我的經驗,你定義FactoryGirl「關聯」時,您需要實例相關聯的對象,同時通過工廠創建其他對象,沒有這個協會新對象將是無效的。

比方說,你有公司和工人的模型,並在您的應用程序有哪些防止無效的company_id屬性創建工人驗證。你可以讓公司沒有工人(這就是爲什麼你不應該在工廠裏定義工人協會),但你不能沒有公司的工人。然後在工廠中爲每個創建的工人添加關聯到lazy-instantiate Company。

所以總結 - 您定義的關聯,當你在模型belongs_to,當你在模型關聯也有存在驗證。