Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Store-Accessor-Problem:Alte, bereits gespeicherte JSON-Objekt-serialisierte (Hash-)Werte in der MySQL-Datenbank in Rails 4 können nicht gelesen werden

Endlich habe ich die Lösung gefunden. Die Implementierung des "store accessor" (in der Frage erwähnt) wurde in Activerecord 4.2.4 geändert. Früher (Active Record 3.2.8) wurden die Daten in der Datenbank im YAML-Format gespeichert und arbeiteten mit „Coder:JSON“, was in ActiveRecord 4.2.4 nicht der Fall ist

Hier ist der Codelink 4.2.4https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/store.rb#L85

Hier ist der Codelink 3.2https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/store.rb#L35

Unabhängig davon, ob die im serialisierten Attribut gespeicherten Daten in YAML oder JSON vorliegen, ist der Codierer, der jetzt für mich funktioniert, jetzt in 4.2.4 YAML.

Daher fing mein Code an zu arbeiten, nachdem ich den Coder von JSON auf YAML geändert hatte.

Jede Frage/Zweifel zu dieser Antwort wird geschätzt.