Я реализую Factory Girl в качестве замены фикстур в моем приложении Rails. У меня есть несколько таблиц, которые я пытаюсь представить с помощью ассоциаций. Однако, чтобы добавить изюминку в цикл, помимо простого определения ассоциаций, мне также необходимо получить доступ к атрибутам дочерних фабрик из родительской.
Ниже приведен пример того, что я пытаюсь сделать:
- Factory :foo_bar связан с Factory :foo, который связан с Factory :bar
- Из :foo_bar я пытаюсь получить доступ к атрибутам как :foo, так и :bar
Вот образцы:
Factory.define :bar do |e|
e.name "Bar"
end
Factory.define :foo do |e|
e.bar {|b| b.association(:bar)}
end
Factory.define :foo_bar do |b|
f = b.association(:foo)
b.foo_id foo.id
b.bar_id foo.bar_id
end
Я прошел через ряд руководств и других вопросов и не видел примеров того, как это сделать. Любые идеи или другие способы получения того же результата?
Спасибо!
ИЗМЕНИТЬ
Основываясь на паре вопросов, вот некоторые пояснения, которые я должен был включить изначально...
:foo_bar — это не таблица соединений, а модель с собственными атрибутами.
Это то, что я на самом деле пытаюсь выполнить:
- заставить :foo_bar создать связанную фабрику
- затем пусть эта связанная фабрика создаст связанную с ней фабрику
- (это элемент, с которым я борюсь) иметь :foo_bar доступ к атрибуту с нижнего уровня Factory
Итак, если :foo_bar > :foo > :bar, то из :foo_bar я пытаюсь получить идентификатор :bar.
after_create
, предоставленный FactoryGirl? - person mikezter   schedule 27.09.2010