将ActiveRecord关系转换为特定键的哈希

时间:2019-02-08 16:22:41

标签: ruby-on-rails ruby

我从以下查询获得了ActiveRecord结果集:

people = People.where(job_type: ["Job Type 1", "Job Type 2"])

这将返回AcitveRecord关系。

我想取people并将其转换为Hash,其中每个键是job_type,并且值是与该job_type相匹配的记录数组。

我找到的最接近的东西是people.as_json,但这给出了一系列的哈希值,而不是我想要使用的格式。

什么是Ruby转换人数据结构的优雅方式?理想情况是:

my_hash = {"Job Type 1" => [record1, record2..], "Job Type 2" => [..]}

1 个答案:

答案 0 :(得分:3)

您似乎想group_by job_type。因此,尝试一下:

people = People.where(job_type: ["Job Type 1", "Job Type 2"]).group_by(&:job_type)