5

我是 PostgreSQL 的完整初学者。我对 Postgres 提供的 hstore 数据类型感到非常惊讶。好吧,我正在使用 Rails 3 框架并开发一个使用 PostgreSQL 的简单应用程序。我想在一个字段中存储一个哈希数组。例如:

authors: [
           {
             name: "abc",
             email: "abc@example.com"
           },
           {
             name: "xyz",
             email: "xyz@example.com"
           }
         ]

在使用 Rails 3 的 PostgreSQL 中这可能吗?如果是这样,有人可以就如何提供见解吗?

谢谢

4

2 回答 2

7

当然可以在 Rails 4 中创建一个 array-of-hstore 列,例如在表创建中使用这样的列规范:

t.hstore :properties, :array => true

然而,Rails 4.0 中存在一个编码错误,不幸的是使它们无法使用。本质上,您可以从中读取它们,并且它们正确地显示为哈希数组,但不能写入。

我在https://github.com/rails/rails/issues/11135打开了一个问题(带有修复补丁) ,希望很快就会被合并。

于 2013-07-05T01:55:13.970 回答
2

我不确定他们是否允许您拥有一个 hstore 数组,但是有一些活动记录扩展可以添加 hstore 和数组类型。例如:

https://github.com/funny-falcon/activerecord-postgresql-arrays

https://github.com/engageis/activerecord-postgres-hstore

https://github.com/tlconnor/activerecord-postgres-array

不要错过 Rails 4 相关的改进:

http://blog.remarkablelabs.com/2012/12/a-love-affair-with-postgresql-rails-4-countdown-to-2013

于 2013-04-27T09:18:21.610 回答