2011-03-20 94 views
0

有人可以提供一個例子或指向我在哪裏我可以學習如何工廠女孩嵌套模型協會?使用工廠女孩創建線程和線程參與工廠

,線程必須有至少一個ThreadParticipation

現在,我有我的線程在factories.rb如下:

Factory.define :thread do |thread| 
    thread.title    "mythread" 
end 

如何再建立一個ThreadParticipation?

感謝

回答

3

Getting Started file在factory_girl源有關聯的信息。

關聯的實例可以通過使用當 限定lazy屬性的關聯方法來生成 :

factory :post do 
    # ... 
    author 
end 

也可以指定不同的 工廠或重寫屬性:

factory :post do 
    # ... 
    association :author, :factory => :user, :last_name => 'Writely' 
end 

因此,在你的例子中,我會想象這樣的事情會做:

Factory.define :thread do |thread| 
    thread.title "mythread" 
    thread.thread_participation 
end 

Factory.define :thread_participation do |ppn| 
    ppn.attribute "value" 
end 

如果你使用一個集合,而不是一個has_one/belongs_to關聯的,你可以創建一個數組這樣:

Factory.define :thread do |thread| 
    thread.title "mythread" 
    thread.thread_participations { |a| [a.association(:thread_participation)] } 
end 
+0

感謝但散發出一種「未定義的局部變量或方法thread_participation」 – AnApprentice 2011-03-20 03:37:15

+0

我正在使用導軌3工廠女孩寶石,也許這是爲什麼?你必須使用Factory.define:thread do | thread | – AnApprentice 2011-03-20 03:41:27

+1

啊,有道理。我編輯了答案。謝謝! – 2011-03-20 19:50:30