我在Rails教程中没有得到这意味着什么:
组(* args)公开 允许指定组属性:
User.group(:name)
=> SELECT“users”。* FROM“users”GROUP BY name 返回一个基于group属性具有不同记录的数组:
User.group(:name) [User id: 3, name: "Foo", ...>, #User id: 2, name: "Oscar", ...>]
我没有看到他们给出的例子分组......
答案 0 :(得分:1)
如果您尝试计算数据库中的内容或者连接多个表,那么组是最有用的(我认为)。我举几个例子。
1。 如果您想知道数据库中有多少用户名,那么您可以这样做:
User.group(:name).count
这将返回一个类似这样的哈希:
{ ann: 4, bert: 15, cecilia: 3 ... }
我不知道为什么数据库中存在这么多Berts但无论如何...
2。 如果您的用户有相关记录(例如汽车),您可以使用它来获取您的activerecord模型中包含的第一辆汽车(首先是因为团队的工作方式,并在下面的链接中进一步解释)< / p>
User.joins(:cars).select('users.*, cars.model as car_model, cars.name as car_name').group('users.id')
现在,此结果中的所有记录都会有一个名为car_model
的方法和一个名为car_name
的方法。
您可以通过一次查询计算每个用户拥有的汽车数量。
User.joins(:cars).select('users。*,count(cars.id)as car_count')。group('users.id')
现在所有记录都有car_count
。
进一步阅读:Mysql group tutorial
希望这能为你们提供足够的亮点,让你们尝试一下。在你与他们合作之前,我认为你不能完全理解它们。