2017-06-19 4 views
1

Ich habe eine Datenbankspalte vom Typ Text, die einen Hash in meiner Datenbank speichert.So speichern und aktualisieren Sie eine Spalte, wenn eine andere geändert wird

column_a = {sample_list: [{email: [email protected]},{email: [email protected]}]} 

Ich möchte eine andere Spalte in der Datenbank erzeugen, die eine Reihe von email_address zB enthält enthält:

column_B = "[email protected],[email protected]" 

Ich weiß, wie die Zeichenfolge aus dem Hash zu bekommen erzeugen, sind meine Fragen, welche Änderungen Modell Muss ich so machen, dass immer wenn column_A aufgefüllt wird, column_B aktualisiert werden sollte?

Wie gehe ich in diesem Fall mit Migrationen von historischen Daten um?

Antwort

1

dann (zu einem Zeitpunkt, an dem Sie sicher sind, ein Update durchzuführen) führen Sie dies in einer Konsole aus. Finde, dass jeder die Daten stapelweise absetzt.

+0

Ich würde mit dieser Option gehen, aber Steven sollte etwas wie '' self.collumn_b = ... 'verwenden, so dass das gleiche Datenbank-Commit beide Spalten speichert. – fanta

+0

Deshalb habe ich einen 'before_save' Aufruf verwendet. Ich weiß nicht, welchen Code er verwendet, um die 'column_b' zu aktualisieren, aber ich würde annehmen, dass es' self.column_b = 'nicht einen direkten DB-Aufruf tun würde. und alle Änderungen, die bei einem 'before_save'-Aufruf vorgenommen werden, bleiben beim Speichern erhalten. –

+0

ja, du hast Recht. Ich habe das gerade erwähnt, damit er es merkt ;-). – fanta

Verwandte Themen