Rails / Postgres聚合列值

时间:2016-05-14 01:46:11

标签: ruby-on-rails postgresql activerecord

我有一个名为TopicSubscription的导轨模型,它有2个主要列。

  • user_id(整数)
  • topic_id(整数)

我试图写一个会返回这样的哈希的查询:

{user_id1 => [topic_ids], user_id2 => [topic_ids] }

其中键是user_ids,值是topic_ids的数组。

这是我尝试的查询:

TopicSubscription.select("ARRAY_AGG(topic_id) AS topic_ids, user_id").where(topic_id: [1,2,3].group(:user_id)

然而它返回的内容如下:

#<ActiveRecord::Relation [#<TopicSubscription id: nil, user_id: 1>, #<TopicSubscription id: nil, user_id: 2>]>

我正在使用Rails 4.2和Postgres 9.4。我试图避免在生产中使用Enumerable#group_by,它将选择数千/数万行。

编写此查询以获取我正在寻找的格式的数据的正确方法是什么?

0 个答案:

没有答案