2013-04-24 28 views
5

Tôi là người mới bắt đầu hoàn chỉnh trong PostgreSQL. Và tôi đã rất ngạc nhiên bởi kiểu dữ liệu hstore do Postgres cung cấp. Vâng, tôi đang sử dụng khung Rails 3 và phát triển một ứng dụng đơn giản sử dụng PostgreSQL. Tôi muốn lưu trữ một mảng băm trong một trường. Ví dụ:Có thể có một Array of hstore trong PostgreSQL

authors: [ 
      { 
      name: "abc", 
      email: "[email protected]" 
      }, 
      { 
      name: "xyz", 
      email: "[email protected]" 
      } 
     ] 

Điều này có thể thực hiện được trong PostgreSQL bằng Rails 3 không? Nếu có, ai đó có thể cung cấp thông tin chi tiết về cách thức?

Cảm ơn

+1

Vâng, chắc chắn là có thể ở bên PG: http://sqlfiddle.com/#!1/16e4c/3 –

+0

Bạn có biết làm thế nào để bạn thực hiện điều này trong Rails. Tôi là một người mới hoàn thành để rails. Cảm ơn – swaroopsm

Trả lời

7

Đó chắc chắn có thể tạo ra một mảng cột -of-hstore trong Rails 4 với ví dụ thông số cột như thế này trong việc tạo bảng:

t.hstore :properties, :array => true 

Tuy nhiên, có lỗi mã hóa trong Rails 4.0 không may khiến chúng không sử dụng được; về cơ bản bạn có thể đọc từ chúng và chúng hiển thị chính xác như mảng băm, nhưng không viết.

Tôi đã mở một vấn đề (với bản sửa lỗi) tại https://github.com/rails/rails/issues/11135 hy vọng sẽ sớm được kết hợp.

+0

Cảm ơn bạn! Mong nhóm đường ray kết hợp nó. – swaroopsm

+0

Cảm ơn bạn đã làm việc trên @inopinatus này! Bạn có bất kỳ ý tưởng về làm thế nào để vượt qua mảng hstore như là một chuỗi để nó được vào cơ sở dữ liệu chính xác cho đến khi bản vá của bạn trở thành một phần của Rails? –

+0

Câu trả lời của bạn dường như xung đột với câu trả lời được chấp nhận ở đây: http://stackoverflow.com/questions/22306434/can-i-store-arrays-in-hstore-with-rails là bạn chắc chắn điều này có thể được thực hiện? – Noz

2

Tôi không chắc chắn nếu họ sẽ cho phép bạn có một mảng hstore, nhưng có một vài phần mở rộng kỷ lục hoạt động mà thêm hstore và mảng loại. ví dụ:

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

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

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

Đừng bỏ lỡ Rails 4 liên quan đến cải tiến, quá:

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

Các vấn đề liên quan