sql >> Base de Datos >  >> RDS >> Mysql

Problema de acceso a la tienda:no se pueden leer los valores serializados (hash) del objeto json antiguo ya almacenado en la base de datos mysql en Rails 4

Finalmente encontré la solución. La implementación del "accesorio de la tienda" (mencionado en la pregunta) se cambia en activerecord 4.2.4. Anteriormente (registro activo 3.2.8), los datos se almacenan en la base de datos en formato YAML y funcionaba con "codificador:JSON", que no es el caso en el registro activo 4.2.4

Aquí está el enlace del código 4.2.4https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/store.rb#L85

Aquí está el enlace del código 3.2https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/store.rb#L35

Ahora, en 4.2.4, ya sea que los datos almacenados en el atributo serializado estén en YAML o JSON, el codificador que funciona para mí ahora es YAML.

Por lo tanto, mi código comenzó a funcionar después de cambiar el codificador de JSON a YAML.

Cualquier pregunta/duda sobre esta respuesta será apreciada.