提问人:Jack R-G 提问时间:9/17/2020 更新时间:9/17/2020 访问量:19
Rails 4 AR .select 在结果中包含 pk 字段,即使结果被分组(与 Rails 3.2 相反)
Rails 4 AR .select includes pk field in result even if result is grouped (as opposed to Rails 3.2)
问:
我正在将我的应用程序从 Rails 3.2 迁移到 4.0,我发现许多测试中断,因为 Rails 4 在使用类似内容时在结果集中包含 PK 字段(通常是“id”):
Invoice.where(cust_id: 1234).select('sum(gross) as gross, sum(tax) as tax, sum(net) as net').to_a.first.attributes
这曾经在 3.2 中返回,但在 4.0 中它返回{'gross' => 1000.00, 'tax' => 0.00, 'net' => 1000.00}
{'gross' => 1000.00, 'tax' => 0.00, 'net' => 1000.00, id => nil}
如果您正在编写测试并将实际结果与预期结果进行比较,则会出现问题,在这种情况下,id 字段会引发比较。我在任何地方都没有看到这种行为变化。有没有办法关闭这个“功能”?
答: 暂无答案
评论
.except(‘id’)