gpt4 book ai didi

ruby-on-rails - FactoryGirl "create_list"未保存到数据库

转载 作者:行者123 更新时间:2023-12-03 17:35:24 25 4
gpt4 key购买 nike

我在 FactoryGirl 中看到一些奇怪的行为,似乎与文档相矛盾。在 Rspec 测试中,如果我这样做;

static_groups = FactoryGirl.create_list(:static_group,5)
expect(StaticGroup.count).to eq(5)

测试失败(预期:5,得到:0)。如果我添加显式保存的记录;
static_groups = FactoryGirl.create_list(:static_group,5)
static_groups.each do |grp|
grp.save
end
expect(StaticGroup.count).to eq(5)

测试通过!我认为 factorygirl 中的“创建”应该为您保存,但在这种情况下,它显然不是保存可以在之后立即保存的记录!更奇怪的是,如果我在第一个示例中询问对象(我没有进行显式保存),它们都有 id,所以它们肯定一直在与数据库交谈!

编辑

在任何人指出狡猾的“计数”语法之前,我使用 DataMapper 作为 ORM,这是一种有效的计数方式:)

最佳答案

呃——噩梦。

最终弄清楚它是什么——“StaticGroup”类使用 STI 来确定它的类型。这有点复杂,因为它连接到两个数据库,并且类结构在旧世界和新世界之间发生了变化。

长话短说,我将我的组工厂复制/粘贴到静态组工厂并忘记更改类型。 “保存”方法中有一个钩子(Hook)可以为我解决这个问题,并且当 factorygirl 创建对象时它没有被解雇。

关于ruby-on-rails - FactoryGirl "create_list"未保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21314883/

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