PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Kann ich mit Rails Arrays in hstore speichern?

hstore ist für die einfache Speicherung von Schlüsseln/Werten gedacht, wobei sowohl die Schlüssel als auch die Werte einfache unstrukturierte Zeichenfolgen sind. Aus dem feines Handbuch :

Beachten Sie den letzten Satz:Schlüssel und Werte in hstore sind Saiten. Das bedeutet, dass Sie kein Array in einen hstore einfügen können Wert, ohne dass Sie das Array in und aus einem String umwandeln müssen, und Sie wollen wirklich nicht mit so etwas herumspielen.

Es gibt jedoch einen JSON-Datentyp verfügbar:

und JSON kann eingebettete Arrays und Objekte problemlos verarbeiten. Versuchen Sie stattdessen, JSON zu verwenden:

add_column :users, :properties, :json

Sie müssen den alten hstore entfernen Spalte zuerst.

Außerdem wollten Sie array: true nicht auf Ihrem hstore -Spalte, da Sie kein Array von hstore gespeichert haben s, du wolltest nur einen von ihnen.