老实说 - 我不完全理解 ActiveRecord 的计算和分组方法是如何工作的。但是,该 api 似乎很清楚以下是正确的格式:
Locations.images.count(:image_id, :group => "location_id")
问题来自返回值——实际上并没有在 API 中的任何地方定义的东西,并且计数方法似乎会根据您提供的内容半随机地改变。至少在这里,它似乎没有任何意义:
{[488, 21]=>nil, [464, 1]=>nil}
数组中的第一个数字是我的位置 ID,已经足够好了。第二个是适当的计数 - 太棒了。
但是为什么它会以这种格式返回呢?为什么它们在指向 nil 的数组作为键的哈希中?这是/应该/在这里返回的内容吗?它有什么用途?
我觉得我错过了一些东西,就像我不确定我是否可以相信这个功能来做我需要的事情。而且我并不热衷于将其转换为
{488 => 21, 464 => 1}
手动,但我可以忍受的最后一点。
谁能给我一些澄清?
版本:Ruby 1.8.7,Rails 3.0.11