Ruby on rails 工厂女孩,默认特征中的关联,但在传递特征时将其保持为非关联

Ruby on rails 工厂女孩,默认特征中的关联,但在传递特征时将其保持为非关联,ruby-on-rails,rspec,factory-bot,Ruby On Rails,Rspec,Factory Bot,我正在使用rspec a公司模型进行测试,该模型具有多个地址 我正在使用factory girl来生成我的测试环境,我希望默认的公司注册几个地址,而我希望在没有任何地址的公司的特定情况下有一个特征 我现在在工厂里做的是: FactoryGirl.define do factory :company do sequence(:name) { |n| "company #{n}" } description { "description #{name}" } t

我正在使用rspec a
公司
模型进行测试,该模型具有多个
地址

我正在使用factory girl来生成我的测试环境,我希望默认的公司注册几个地址,而我希望在没有任何
地址的公司的特定情况下有一个特征

我现在在工厂里做的是:

FactoryGirl.define do
  factory :company do
    sequence(:name) { |n| "company #{n}" }
    description     { "description #{name}" }

    trait :no_address do 
      addresses nil
    end

    after(:create) do |company, evaluator|
      create_list(:address, 3, company: company)
    end
  end
end
如何创建工厂,以便在使用trait
no\u address
时根本不创建地址

谢谢,

FactoryGirl's可能正是您所需要的:

FactoryGirl.define do
  factory :company do
    transient do
      create_address true
    end

    sequence(:name) { |n| "company #{n}" }
    description     { "description #{name}" }

    trait :no_address do
      transient do 
        create_address false
      end
    end

    after(:create) do |company, evaluator|
      create_list(:address, 3, company: company) if evaluator.create_address
    end
  end
end