我正在实施Factory Girl作为我的Rails应用程序中灯具的替代品。我有几个表,我试图用关联来表示。但是,为了在循环中抛出一个问题,除了定义关联之外,我还需要从父级访问子工厂的属性。
下面是我正在尝试做的一个例子:
以下是样本:
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然后来自:foo_bar,我正试图得到:bar的ID。
答案 0 :(得分:4)
我正在使用after_build挂钩来处理这样的情况:
Factory.define :foo do |f|
f.name "Foo"
f.association :foo
f.after_build do |obj|
obj.foo_bar = obj.foo.bar
end
end
答案 1 :(得分:0)
如果没有型号代码,很难说它应该如何显示?
但也许是这样的?
Factory.define :bar do |f|
f.name "Bar"
f.association :foo_bar
end
Factory.define :foo do |f|
f.name "Foo"
f.association :foo_bar
end
Factory.define :foo_bar do |f|
f.association :foo
f.association :bar
end