Ruby on rails Factory girl:创建与现有对象关联的对象

Ruby on rails Factory girl:创建与现有对象关联的对象,ruby-on-rails,ruby-on-rails-3,rspec,factory-bot,Ruby On Rails,Ruby On Rails 3,Rspec,Factory Bot,我想创建两个对象,它们引用我在before(:each)块中创建的另一个单个对象 例如 #在my factories.rb文件中。。 工厂:胡说八道 关联:foo,:factory=>:foo 结束 ... #按照我的要求。。 在…之前做 foo=工厂(:foo) 结束 ... foo.blahs我最后所做的事情使我恢复了健康(请告诉我这是否是一种糟糕的形式!) 在我的工厂里。。 工厂:胡说八道 #属性,没有关联 结束 #按照我的要求。。 在…之前做 @foo=工厂(:foo) 结束 ... f

我想创建两个对象,它们引用我在before(:each)块中创建的另一个单个对象

例如

#在my factories.rb文件中。。
工厂:胡说八道
关联:foo,:factory=>:foo
结束
...
#按照我的要求。。
在…之前做
foo=工厂(:foo)
结束
...

foo.blahs我最后所做的事情使我恢复了健康(请告诉我这是否是一种糟糕的形式!

在我的工厂里。。 工厂:胡说八道 #属性,没有关联 结束 #按照我的要求。。 在…之前做 @foo=工厂(:foo) 结束 ... foo.blahs@foo) foo.blahs@foo)

从我的角度来看,这似乎很合理

是的,这是我的最终解决方案。您是否打算在代码中的最后一条语句中说
:blah_2
,而不是
:blah_1
# in my factories.rb file..
factory :blah_1 do
  association :foo, :factory => :foo
end

...

# in my spec..

before(:each) do
  foo = Factory(:foo)
end

...

foo.blahs << Factory(:blah_1)
foo.blahs << Factory(:blah_1)
# some test on foo to make sure the right thing happened
# in my factories.rb..
factory :blah_1 do
  # attributes, no associations
end

# in my spec..
before(:each) do 
  @foo = Factory(:foo)
end

...

foo.blahs << Factory(:blah_1, :foo => @foo)
foo.blahs << Factory(:blah_2, :foo => @foo)