2013-03-04 51 views
3

我在Postgres的一个查询,返回一个Postgres阵列中的一列:轨道3 Postgres的阵列支持

SELECT e.context->'device' AS device, count(e.data->'model_name') AS members, ARRAY_AGG(e.data->'model_name') AS models 
    FROM entity AS e 
    WHERE e.data->'type'='chassis' GROUP BY e.context->'device', e.data->'model_name'; 

是否有宝石或serialize声明,我可以用轨映射3模式,使我可以直接使用models作为红宝石数组?

我知道我可以通过它在控制器中循环,但这似乎不是非常干燥。

回答

0

只是为了关闭这个:最后我升级到了rails4。它对阵列和哈希都有很好的支持。

0

我能找到的最接近的是activerecord-postgres-array。目前尚不清楚它的维护程度如何,但总的来说,实际的代码不是太复杂或不稳定,所以我认为这是合理的。

我说这是一个在DD :: Pg直接支持Pg数组之前用Perl手动处理这些数据的人。代码简单且相对不变,因此过去有大量发布的事实表明这是从哪里开始的。

3

如果有人发现这一点,并且像我一样想要添加对Rails 3.2应用程序的支持,我发现了1.0 version of postgres_ext gem

1.0版本依赖于ActiveRecord 3.2。

高级主要版本适用于Rails 4.