gpt4 book ai didi

ruby-on-rails - 访问* other *工厂中的factory_girl工厂

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

我在Rails应用程序中使用factory_girl插件。对于每种型号,我都有一个对应的 ruby 文件,其中包含工厂数据,例如

Factory.define :valid_thing, :class => Thing do |t|
t.name 'Some valid thing'
# t.user ???
end

我有很多不同类型的用户(已经在用户工厂中定义了)。如果我尝试以下方法:
Factory.define :valid_thing, :class => Thing do |t|
t.name 'Some valid thing'
t.user Factory(:valid_user) # Fails
end

我收到以下错误:
# No such factory: valid_user (ArgumentError)

:valid_user实际上是有效的-我可以在测试中使用它-而不是在工厂中使用。有什么办法可以使用此处另一个文件中定义的工厂?

最佳答案

您应该使用以下代码:

Factory.define :valid_thing, :class => Thing do |t|
t.name 'Some valid thing'
t.user { Factory(:valid_user) }
end

在{}中包装调用会导致Factory Girl在创建:valid_thing工厂之前不评估括号内的代码。这将迫使它等待直到:valid_user工厂被加载(您的示例失败,因为尚未加载),这还将导致为每个:valid_thing创建一个新的:valid_user,而不是为所有用户创建相同的用户:valid_thing(可能是您想要的)。

关于ruby-on-rails - 访问* other *工厂中的factory_girl工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2233671/

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