Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema do acessador de armazenamento:Não é possível ler valores serializados (hash) de objetos json antigos já armazenados no banco de dados mysql no Rails 4


Encontrei a solução finalmente. A implementação "store accessor" (mencionada na pergunta) é alterada no activerecord 4.2.4. Anteriormente (registro ativo 3.2.8 ) os dados são armazenados no banco de dados no formato YAML e estava trabalhando com "coder:JSON", o que não é caso no activerecord 4.2.4

Aqui está o link do código 4.2.4https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/store.rb#L85

Aqui está o link do código 3.2https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/store.rb#L35

Agora no 4.2.4, se os dados armazenados no atributo serializado estão em YAML ou JSON, o codificador que está funcionando para mim agora é YAML.

Portanto, meu código estava começando a funcionar depois que mudei o codificador de JSON para YAML.

Qualquer pergunta/dúvida sobre esta resposta será apreciada.