这就是我所拥有的:
factory :application do
association :gs_collector
end
factory :zephyr do
quantity 1
association :application, gs_collector: nil
after(:create) do |instance|
instance.application.update(zephyr: instance)
end
end
这有效,但似乎很尴尬。在Zephyr工厂中,我宁愿将应用程序关联的zephyr属性设置为当前工厂。这样,我就不必使用after(:create)回调。类似的东西:
factory :zephyr do
quantity 1
association :application, gs_collector: nil, zephyr: self
end
但这不起作用 - 使用self会抛出错误。我怎么能这样做?