Подтвердить что ты не робот

Has_many и принадлежит ассоциациям в factory_girl

У меня есть эти модели, которые я пытаюсь создать заводы для использования factory_girl.

class Foo < ActiveRecord::Base
  belongs_to :baz
end

class Baz < ActiveRecord::Base
  has_many :foos
end

Я не уверен, как создавать фабрики, не создавая цикл, где фабрики бесконечно называют друг друга.

Factory.define :foo do |f|
  f.after_create do |ff|
    ff.baz = Factory(:baz)
  end
end

Factory.define :baz do |f|
  f.after_create do |ff|
    ff.foos = [Factory.create(:foo)]
  end
end

Я понимаю, что могу просто оставить ff.foos = [Factory.create(:foo)] в baz factory, но затем в моих тестах baz я вынужден использовать foo.baz вместо того, чтобы просто использовать baz. Я вынужден использовать объект baz, выбирая его из foo factory в моих тестах? Или есть лучший способ?

4b9b3361

Ответ 1

См. раздел Ассоциации руководства по началу работы

Добавлено

Итак, вам нужно использовать этот синтаксис из этого раздела, т.е. в вашем объявлении Foo вам нужно:

Factory.define :foo do |f|
  f.association :baz
end

Нет after_create, необходимых для ассоциации belongs_to.