gpt4 book ai didi

ruby-on-rails - 在 FactoryGirl 中的关联设置属性中传递参数

转载 作者:行者123 更新时间:2023-12-03 09:02:45 25 4
gpt4 key购买 nike

我想将一个参数传递给一个工厂,该工厂将用于设置关联模型的属性。关联模型是在工厂内创建的。

我有一个事务模型,它通过连接表 TxLink 与自身建立多对多链接。
我想调用link = FactoryGirl.create(:link_red_to_sub, sub: 10, red: 7)这将创建两个 Transaction 对象和一个链接两者的 TxLink。

由于 units: sub,我在下面的关联行中收到错误消息在末尾。错误是“未定义特征”。我试过units: { sub } (带括号)而不是骰子。

factory :tx_link do
units "9.99"

factory :link_red_to_sub do
ignore do
sub 0
red 0
end
units { red }

association :giver, factory: :transaction, units: sub
association :taker, factory: :redemption, units: red
end
end

最佳答案

association factory_girl 中的助手不能采用动态属性参数,但您可以使用动态属性来实例化您想要的关联:

factory :tx_link do
units "9.99"

factory :link_red_to_sub do
transient do
sub 0
red 0
end
units { red }

giver { create(:transaction, units: sub) }
taker { create(:redemption, units: red) }
end
end

唯一的缺点是 givertaker无论您正在构建什么策略,关联都将使用 create 策略 tx_link与,这实质上意味着 attributes_forbuild_stubbed tx_link 无法正常工作工厂。

我提供的示例需要 4.5.0 版本。

关于ruby-on-rails - 在 FactoryGirl 中的关联设置属性中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434572/

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