Ruby on rails 为什么工厂机器人会将传入的属性置零?我怎么能让它不那样做呢?

Ruby on rails 为什么工厂机器人会将传入的属性置零?我怎么能让它不那样做呢?,ruby-on-rails,factory-bot,Ruby On Rails,Factory Bot,我有一个简单的工厂 factory :imported_object do sequence(:source_id) { |n| "id_#{n}" } source { 'default_source' } end 我试图测试它是否允许重复源代码ID,但只能从不同的源代码中进行。但是,我不能同时分配这些属性。我可以单独分配,但是 imported\u object=build(:imported\u object,source:'5',source\u id:'dif

我有一个简单的工厂

  factory :imported_object do
    sequence(:source_id) { |n| "id_#{n}" }
    source { 'default_source' }
  end
我试图测试它是否允许重复源代码ID,但只能从不同的源代码中进行。但是,我不能同时分配这些属性。我可以单独分配,但是

imported\u object=build(:imported\u object,source:'5',source\u id:'different\u source')

使两个对象在结果的导入对象中都具有值
nil


如何让FactoryBot在这里工作?

这与以下事实有关:您的列被称为
source
source\u id
。factory_bot假设
source
是一个关联,而
source_id
是该关联的外键


这个问题经常出现,我们正在跟踪。

这家工厂背后有模型吗?是的,看起来只是工厂机器人的一个限制