ruby-on-rails - 将 ActiveRecord 关系转换为特定键控的哈希

标签 ruby-on-rails ruby

我有一个来自以下查询的 ActiveRecord 结果集:

people = People.where(job_type: ["工作类型 1", "工作类型 2"])

这将返回一个 AcitveRecord 关系。

我想获取 people 并将其转换为 Hash,其中每个键都是 job_type,值是一个记录数组匹配那个 job_type

我找到的最接近的是 people.as_json 但它提供了一个哈希数组,而不是我想要使用的格式。

转换人员数据结构的优雅 Ruby 方法是什么?理想情况下它看起来像:

my_hash = {"工作类型 1"=> [record1, record2..], "工作类型 2"=> [..]}

最佳答案

看起来你想要group_by 工作类型。所以,试一试:

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

关于ruby-on-rails - 将 ActiveRecord 关系转换为特定键控的哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54596469/

相关文章:

ruby - 如何在 Ruby 中匹配完整的单词而不是子字符串

ruby - 如何在 rspec 中正确模拟 openssl 对象?

ruby-on-rails - Rails - 使用嵌套属性为 has_many 创建 seeds.rb

ruby - 在 Ruby 中,将散列值数组中的所有内容从 float 转换为 int 的一些好方法?

ruby-on-rails - 使用docker-compose在执行第一个命令成功后,执行 `rake db:setup`的docker容器中的Rails 5始终会断开与postgresql的连接

ruby-on-rails - Rails 4 查询由单个属性唯一

ruby-on-rails - 重新启动后,如何保持乘客独立运行?

ruby-on-rails - 将对象添加到一对多关系 ROR

ruby-on-rails - 使用 AJAX 解析对 SetExpressCheckout 数字商品的响应(集成 PayPal 数字商品以进行快速结账)?

Ruby on Rails - 从 app/views/layouts/_menu.rhtml 访问/lib/login_system.rb 中用户定义的库函数