2013-06-27 3 views
0

У меня есть две модели, назовем ее моделью Flower and model Bee. Пчелы всегда придерживаются одного и того же цветка, поэтому они belong_to it. У цветка может быть несколько пчел, но есть пчела-королева, и мы хотим сохранить «указатель» в цветочной книге, которая указывает на основную пчелу. Причиной этого является то, что мы хотим, чтобы гибкость имела цветочную точку для новой пчелы, не требуя модификации модели пчел. Мы также хотим, чтобы у вас не было отдельного запроса, чтобы найти правую пчелу.FactoryGirl с гнездом принадлежит к ассоциации

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