为什么工厂机器人会取消传入的属性?我怎样才能让它不那样做?
Why is factory bot nulling out passed in attributes? How can I get it to not do that?
我有一个简单的工厂
factory :imported_object do
sequence(:source_id) { |n| "id_#{n}" }
source { 'default_source' }
end
我正在尝试测试它是否允许重复 source_ids,但只能来自不同的来源。但是,我无法同时分配这些属性。我可以单独分配,但是
imported_object = build(:imported_object, source: '5', source_id: 'different_source')
导致两个对象在结果 imported_object
中都具有值 nil
如何让 FactoryBot 在这里工作?
这与您的列名为 source
和 source_id
这一事实有关。 factory_bot 假设 source
是一个关联,而 source_id
是该关联的外键。
这个问题经常出现,我们正在 https://github.com/thoughtbot/factory_bot/issues/1142 跟踪它。
我有一个简单的工厂
factory :imported_object do
sequence(:source_id) { |n| "id_#{n}" }
source { 'default_source' }
end
我正在尝试测试它是否允许重复 source_ids,但只能来自不同的来源。但是,我无法同时分配这些属性。我可以单独分配,但是
imported_object = build(:imported_object, source: '5', source_id: 'different_source')
导致两个对象在结果 imported_object
nil
如何让 FactoryBot 在这里工作?
这与您的列名为 source
和 source_id
这一事实有关。 factory_bot 假设 source
是一个关联,而 source_id
是该关联的外键。
这个问题经常出现,我们正在 https://github.com/thoughtbot/factory_bot/issues/1142 跟踪它。