Mysql
 sql >> Base de données >  >> RDS >> Mysql

Problème d'accès au magasin :impossible de lire les anciennes valeurs sérialisées (hachage) de l'objet json déjà stocké dans la base de données mysql dans Rails 4

J'ai enfin trouvé la solution. L'implémentation "store accessor" (mentionnée dans la question) est modifiée dans activerecord 4.2.4. Auparavant (enregistrement actif 3.2.8), les données sont stockées dans la base de données au format YAML et fonctionnaient avec "codeur :JSON", ce qui n'est pas le cas dans l'enregistrement actif 4.2.4

Voici le lien de code 4.2.4https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/store.rb#L85

Voici le lien de code 3.2https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/store.rb#L35

Maintenant dans 4.2.4, que les données stockées dans l'attribut sérialisé soient en YAML ou JSON, le codeur qui fonctionne pour moi maintenant est YAML.

Par conséquent, mon code commençait à fonctionner après avoir changé le codeur de JSON en YAML.

Toute question/doute sur cette réponse sera appréciée.