Ruby on rails 将rails查询结果转换为树的最有效方法
我对ruby/rails相当陌生。我有一个AR查询,它连接postgres中的两个表-突变和效应。突变有很多影响。 该查询的结果给出如下结果:Ruby on rails 将rails查询结果转换为树的最有效方法,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我对ruby/rails相当陌生。我有一个AR查询,它连接postgres中的两个表-突变和效应。突变有很多影响。 该查询的结果给出如下结果: mutation_id | chr | pos | gene | eff_impact | eff_transcript --------------------------------------------------------------------- 1 | 1 | 123 | JAK | bad
mutation_id | chr | pos | gene | eff_impact | eff_transcript
---------------------------------------------------------------------
1 | 1 | 123 | JAK | bad | tx123
1 | 1 | 123 | JAK | worse | tx456
2 | 4 | 456 | KRAS | fine | tx234
2 | 4 | 456 | KRAS | scary | tx483
3 | 7 | 789 | SMURF | helpful | tx987
这给了我一个简单的结果集,其中包含来自突变表的重复值,因为突变有很多影响
我最终需要的是一个具有树结构的哈希数组,如下所示:
[
{"mutation_id" => 1,
"chr" => 1,
"pos" => 123,
"gene" => "JAK",
"effects" => [
{"eff_impact" => "bad", "eff_transcript" => "tx123"},
{"eff_impact" => "worse", "eff_transcript" => "tx456"},
]
},
{"mutation_id" => 2,
"chr" => 4,
"pos" => 546,
"gene" => "KRAS",
"effects" => [
{"eff_impact" => "fine", "eff_transcript" => "tx234"},
{"eff_impact" => "scary", "eff_transcript" => "tx483"},
]
},
{"mutation_id" => 3,
"chr" => 7,
"pos" => 546,
"gene" => "SMURF",
"effects" => [
{"eff_impact" => "helpful", "eff_transcript" => "tx987"}
]
}
]
结果是约10万行。如果可能的话,我更希望初始查询使用这种树结构返回AR结果
谢谢尝试
变异。你的现有查询在这里。分组{e | e.Mutation_id}
。最后应该得到一个散列,其中键是id,值是元素数组。你可以根据自己的需要改变分组。@PhilipHallstrom是的,我能做到这一点,但不确定如何改变以适应部分。我做了一些实验,不知道如何在groupby中使用多个键。groupby{e |[e.mutation_id,e.chr]}
将通过这两个字段的独特组合进行分组。