Sql 按属性将Rails查询分组到数组中
假设我有以下行:(表示为JSON): 在Rails中,我如何按年龄对它们进行分组?例如,我想要这样的东西:Sql 按属性将Rails查询分组到数组中,sql,ruby-on-rails,Sql,Ruby On Rails,假设我有以下行:(表示为JSON): 在Rails中,我如何按年龄对它们进行分组?例如,我想要这样的东西: [ { age: 10, objects: [ { name: "Bob", age: 10 }, { name: "Alice", age: 10 } ] }, { age: 15, objects: [ { name: "Carl", age: 15 } ] }, { age: 20, objects: [ { name: "Dere
[
{ age: 10, objects: [
{ name: "Bob", age: 10 },
{ name: "Alice", age: 10 }
] },
{ age: 15, objects: [
{ name: "Carl", age: 15 }
] },
{ age: 20, objects: [
{ name: "Derek", age: 20 }
] },
]
明白了
People.all.group_by(&:age)
如果您实际处理的是JSON:
people.group_by{|p| p['age'] }
如果您正在处理ActiveRecord模型:
People.group('id, age')
还有关于使用ActiveRecord分组的附加文档。我喜欢带有块的文档!不幸的是,我在PG视图中以与列相同的方式命名了一个关联,Rails试图用它来实现一些“意想不到的”魔力。幸运的是,我能够做类似于
人的事情。按{p | p.read_属性(:age)}
分组。符号是用来做什么的?它是将:age
转换为进程的快捷方式,请参见此处:
People.group('id, age')