条件以及rails中的group by选项

时间:2013-06-05 12:29:23

标签: ruby-on-rails-3

我是rails的新手,所以请任何人告诉我如何在控制器页面中使用group_by选项,并且与group_by一起,我想通过Where Condition计算名称

2 个答案:

答案 0 :(得分:2)

在城市模型中添加范围。

scope :by_name, lambda { |name| where(name: name) }

当您在范围内呼叫计数时

City.by_name('London').count

将执行以下MySql ...

SELECT count(*) FROM {城市{1}} {城市{1}} {名称{1}}

答案 1 :(得分:1)

City.group_by(&:name)

上面的语句将为您提供哈希数组,其中键为city_name,值为城市记录数组。

然后,如果您只需要计算所有城市的每个城市记录数组,那么您可以通过创建新变量并使用以下命令存储记录计数及其名称来实现:

city_count = {}
City.group_by(&:name).each do |city_name, city_records|
    city_count[city_name] = city_records.count
end

上面的代码将返回散列数组,其中key为city_name,记录数为value。