使用Ruby 1.9.3。
假设这个例子,MySQL 中的简单表"cars"
id | Model
1 | Ford
2 | Ford
3 | Mini
如果我运行这个查询:
select count(*),model from cars group by model;
我会得到
count(*) | model
2 | Ford
1 | Mini
显示数据库中有两个条目的型号为"Ford",一个条目的模型为"Mini"。
我不知道如何在rails中获得该查询的结果(除了使用直接SQL加载数组等)。假设一个名为"汽车"的模型用于表上的"汽车",我尝试过之类的东西
Car.find(:all, :select => 'count(*),model', :group => 'model')"
但这只是返回模型,而不是匹配计数。
我正在寻找一个干净的方法来收集所有的计数&从"cars"表中建模信息,该信息不需要使用完整的直接SQL,然后将生成的数组扁平化以使其有意义
(如果这个问题已经有答案了,请告诉我它在哪里。我搜索了一段时间,问的所有问题似乎都不符合我的要求)
也许这可以帮助您:
Car.all.group(:model).count
这里还有其他有用的答案:rails 3分组依据和总和