10

假设我有这些行:(表示为 JSON):

[
  { name: "Bob", age: 10 },
  { name: "Carl", age: 15 },
  { name: "Alice", age: 10 },
  { name: "Derek", age: 20 }
]

在 Rails 中,我怎样才能将这些分组age?例如,我想要这样的东西:

[
  { 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 }
  ] },
]
4

2 回答 2

24

知道了!

People.all.group_by(&:age)
于 2013-09-18T01:14:42.167 回答
9

如果您实际上是在处理 JSON:

people.group_by{|p| p['age'] }

如果您正在处理 ActiveRecord 模型:

People.group('id, age')

这里有关于使用 ActiveRecord 分组的附加文档。

于 2013-09-18T01:16:14.567 回答