2013-04-24 27 views
5

Sono un principiante assoluto in PostgreSQL. E sono rimasto davvero colpito dal tipo di dati dell'hstore fornito da Postgres. Bene, sto usando il framework Rails 3 e sto sviluppando una semplice app che usa PostgreSQL. Voglio memorizzare una serie di hash in un campo. Per esempio .:È possibile avere una matrice di hstore in PostgreSQL

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

Questo è possibile in PostgreSQL usando Rails 3? Se è così, qualcuno può dare un'idea di come?

Grazie

+1

Bene, è certamente possibile sul lato PG: http://sqlfiddle.com/#!1/16e4c/3 –

+0

Sai come implementarlo in Rails. Sono un novizio completo di rail. Grazie – swaroopsm

risposta

7

E 'certamente possibile per creare un array -st-hstore colonna in Rails 4 con es una colonna spec come questo nella creazione della tabella:

t.hstore :properties, :array => true 

Tuttavia, c'è un bug di codifica in Rails 4.0 che rende purtroppo inutilizzabili; in sostanza puoi leggere da loro e si presentano correttamente come matrici di hash, ma non scrivere.

Ho aperto un problema (con correzione patch) al https://github.com/rails/rails/issues/11135 che si spera verrà inserito presto.

+0

Grazie! In attesa che il team di rotaie lo incorpori. – swaroopsm

+0

Grazie per aver lavorato su questo @inopinatus! Avete qualche idea su come passare l'array hstore come una stringa in modo che entri nel database correttamente fino a quando la patch diventa parte di Rails? –

+0

La tua risposta sembra essere in conflitto con la risposta accettata qui: http://stackoverflow.com/questions/22306434/can-i-store-arrays-in-hstore-with-rails sei certo che questo può essere fatto? – Noz

2

non sono sicuro se faranno permetterà di avere una matrice hstore, ma ci sono un paio di estensioni record attivo che aggiungono tipi hstore e array. ad esempio:

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

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

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

Da non perdere le Rails 4 relativi miglioramenti, anche:

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

Problemi correlati