我在 Rails 中有以下查询:
records = Record.select('y_id, source')
.where(:source => source, :y_id => y_id)
.group(:y_id, :source)
.having('count(*) = 1')
如果我得到以下输出puts records
:
[#<Record source: "XYZ", y_id: 10000009>, #<Record source: "XYZ", y_id: 10000070>]
看起来输出数组中有 2 个元素。但是当我尝试做的时候records.size
I get:
{[10000009, "XYZ"]=>1, [10000070, "XYZ"]=>1}
我可能走错了路,但我认为问题在于方式.size
works.
Size会自动尝试判断是否调用.count
or .length
。它们的行为方式如下:
- .count 执行 SQL COUNT
- .length 计算结果数组的长度
然而有时.size
将返回一个哈希值(因为它决定使用.count
)
所以你的解决方案可能是使用.length
这将返回一个整数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)