ich zu einem meiner Tabellen vor kurzem ein jsonb Feld hinzugefügtSchlüsselwert schieben Feld jsonb
add_column :users, :preferences, :jsonb, null: false, default: '{}'
und ich Werte wie dies am Speicherung:
user = User.first
user.preferences = { job: "programmer" }
jetzt würde ich eine andere Taste drücken, wie -Wertes Paar meiner jsonb Feld habe ich versucht, dies in der Konsole:
user = User.first
user.preferences.merge(twitter_account: "something")
user.save
und ich bekomme so etwas wie
....
(0.3ms) COMMIT
=> true
was normalerweise bedeutet, dass es gespeichert ist! aber wenn ich den Wert von preferences
überprüfe sehe ich keinen zusätzlichen Wert, auch wenn ich die Konsole verlassen und Schienen Konsole wieder laufen lassen, kann ich jede Änderung sehen
Ist das der Weg, es zu tun oder ich bin falsch ?
Ja, ich sehe, dass jsonb hier verwendete ähnlich wie bei normalem Hash kann ich auch 'user.preferences [" twitter_account "] =" something_else "' thanks! – medBo