具有关联的字段名称之间的工厂女孩​​冲突

Factory girl conflict between field names with association

出于遗留原因,我在 Rails 中有一个包含两个字段的模型:citycity_id

city 是带有城市名称的字符串。 city_id 是对 city 对象的引用。

我应该如何用 factory_girl 申报我的工厂?

我想像这样填充 city_id 和城市:

   factory :address do
     street "Street X"
     city          #uses city factory
     city "MyCity" #uses legacy city   
   end

但这是不可能的。如何区分这两个城市领域?

根据 the docs,您只能在遵循正常约定时使用隐式关联。因此,对于这种情况,您需要显式调用 association 方法。

在下面的示例中,将 :replace_this 替换为模型中的任何 belongs_to 关联:

factory :address do
  street "Street X"
  association :replace_this, factory: :city      #uses city factory
  city "MyCity" #uses legacy city   
end