2013-06-27 105 views
0

我有兩個模型,我們稱之爲模型花和模型蜜蜂。蜜蜂總是堅持相同的花朵,因此他們belong_to它。一朵花可以有多隻蜜蜂,但是有一隻蜂王,我們希望在指向主要蜜蜂的花朵記錄中保留一個「指針」。其原因是我們希望靈活性可以在不需要修改蜜蜂模型的情況下爲新蜜蜂開花。我們也希望避免有一個單獨的查詢來找到正確的女王蜂。FactoryGirl與嵌套belongs_to協會

class Flower < ActiveRecord::Base 
    belongs_to :queen_bee, class_name: 'Bee' 
    has_many :bees 

    after_create :create_queen_bee 
end 

class Bee < ActiveRecord::Base 
    belongs_to :flower 
end 

我有一個花工廠FactoryGirl,我需要確保蜂王生成記錄。

什麼是正確的方式來做到這一點?我們的想法是,我應該能夠做到

flower = FactoryGirl.create(:flower) 
puts flower.queen_bee.name 
puts flower.queen_bee.flower.name 

回答

0

如果你通過after_create回調創建它,那麼它應該自動創建(給你寫create_queen_be正確)。

但是,如果你想通過FactoryGirl的方式,在你的工廠內,你可以指定你的queen_bee;像這樣:

factory :flower do 
    queen_bee { FactoryGirl.create(:bee) } 
end