gpt4 book ai didi

ruby-on-rails - FactoryGirl - 覆盖与特征的关联?

转载 作者:行者123 更新时间:2023-12-04 05:35:10 27 4
gpt4 key购买 nike

假设我有以下 ActiveRecord楷模:

class Car
belongs_to :driver
end

class Driver
# Has attribute :name
has_one :car
end

我使用这些模型定义了几个工厂:
FactoryGirl.define do
factory :car do
association :driver

trait :fast_car do
association :driver, :fast
end
end
end

FactoryGirl.define do
factory :driver do
name 'Jason'

trait :fast do
name 'Mario'
end
end
end

当我执行以下代码时:
car = FactoryGirl.create(:car, :fast_car)

我希望 car.driver.name等于 Mario ,但它等于 Jason .这让我相信你不能使用特征来覆盖工厂的关联。这是真的?如果是这样,覆盖关联的 Driver 的正确方法是什么?对于一辆快车?

最佳答案

幸运的是,你可以。您需要指定 factory与数组关联的关键字,其中第一个元素是要用于关联的工厂的名称,其余元素是工厂的特征:

FactoryGirl.define do
factory :car do
association :driver

trait :fast_car do
association :driver, factory: [:driver, :fast]
end
end
end

FactoryGirl.define do
factory :driver do
name 'Jason'

trait :fast do
name 'Mario'
end
end
end

关于ruby-on-rails - FactoryGirl - 覆盖与特征的关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45823642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com