1

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

4

2 回答 2

2

在城市模型中添加一个范围。

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

当您在范围上调用 count

City.by_name('London').count

将执行以下 MySql...

SELECT count(*) FROM城市WHERE城市.名称= 'London'

于 2013-06-05T12:43:23.083 回答
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

上面的代码将返回哈希数组,其中键为 city_name,记录数为值。

于 2013-06-05T12:56:19.027 回答