Ruby on rails 构建分组的JSON对象
我正在构建一个Rails/主干应用程序,我将在一张表中向用户展示。 我想创建一个JSON树,它按用户ID/名称分组 这就是它现在的样子Ruby on rails 构建分组的JSON对象,ruby-on-rails,json,Ruby On Rails,Json,我正在构建一个Rails/主干应用程序,我将在一张表中向用户展示。 我想创建一个JSON树,它按用户ID/名称分组 这就是它现在的样子 [{ "total_entries": 2 }, { "entries": [{ "id": 21, "status": "pending", "starts_at_date": "2018-02-02", "starts_at_time": "12:
[{
"total_entries": 2
},
{
"entries": [{
"id": 21,
"status": "pending",
"starts_at_date": "2018-02-02",
"starts_at_time": "12:00",
"ends_at_date": "2018-02-02",
"ends_at_time": "12:00",
"description": "",
"ttype": "vacation",
"sum": 0,
"user": {
"id": 1,
"fullname": "Marcus Lurem"
},
"timetype": null,
"pause": 0,
"can_manage": true
},
{
"id": 22,
"status": "pending",
"starts_at_date": "2018-02-07",
"starts_at_time": "12:00",
"ends_at_date": "2018-02-07",
"ends_at_time": "12:00",
"description": "",
"ttype": "doctor",
"sum": 0,
"user": {
"id": 2,
"fullname": "Anna Palmgren"
},
"timetype": null,
"pause": 0,
"can_manage": true
}
]
}
]
我需要在名字上分组
这就是我现在构建JSON对象的方式
json.array! [0,1] do |index|
if index == 0
json.total_entries @total
else
json.entries @events do |event|
json.extract! event, :id, :starts_at_date, :starts_at_time, :ends_at_date, :ends_at_time, :description, :ttype
json.sum event.sum
json.user event.user, :id, :fullname
json.can_manage true
end
end
end
更新
应该差不多是这样的
- 马库斯卢姆
- 身份证
- 地位
- 在日期开始
- 描述
- 安娜·帕姆格伦
- 身份证
- 地位
- 在日期开始
- 描述
json.entries @events.group_by(&:user) do |user, events|
json.user :id, :fullname
json.events events do |event|
json.extract! event, :id, :starts_at_date, :starts_at_time, :ends_at_date, :ends_at_time, :description, :ttype
end
end
你说的“我需要在名字上分组”是什么意思?您可以添加更多详细信息吗?您是否尝试过从
@events.groupby(&:id)
开始?也许在问题中弹出一个你想要的输出的例子?现在有两个用户。我想对每个人的报告进行分组。因此,第一行是名称,然后是属于该名称/用户的所有报告,然后是下一个名称及其报告,依此类推。@JonathanClark您能否更新json
此处实际包含的问题json.array![0,1]do| index|