[英]Populating ruby hash:- by hash of hashes with array values
我的数据库响应如下所示:
response = [
{id: 1, name: Kassandra, group: Sparta, role: Mercenary}
{id: 2, name: Alexios, group: Sparta, role: Mercenary}
{id: 3, name: Herakles, group: Athens, role: Champion}
]
我的方法:
def get_group_details
grouped_details = []
response.each do |key|
key['group'] = key
grouped_details.push(key)
end
end
这会导致stack_level_too_deep错误,看起来我相信它会导致无限循环......我试图操纵响应以发送到 UI:
response: [
Mercenary: {
[{id: 1, name: Kassandra, group: Sparta, role: Mercenary}, {id: 2, name: Alexios, group: Sparta, role: Mercenary}]
}
Champion: [{id: 3, name: Herakles, group: Athens, role: Champion}]
]
我错过了什么?
您可以使用Enumerable#group_by根据特定键的值对哈希进行分组:
response.group_by { |h| h[:role] }
# =>
{
"Mercenary": [
{
"id": 1,
"name": "Kassandra",
"group": "Sparta",
"role": "Mercenary"
},
{
"id": 2,
"name": "Alexios",
"group": "Sparta",
"role": "Mercenary"
}
],
"Champion": [
{
"id": 3,
"name": "Herakles",
"group": "Athens",
"role": "Champion"
}
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.