Problema do accessr de loja: Não é possível ler valores serializados (hash) do object json já armazenados no database mysql no Rails 4

Estou atualizando meu aplicativo para o Rails 4.2.4 do Rails 3.2.8. Eu tenho um atributo ‘extras’ para uma tabela ‘editoriais’ que é serializada

store :extras, accessors: [:attr1, :attr2, :attr3], coder: JSON #The way it is stored in **Rails 3** is --- :attr1: value :attr2: value :attr3: value #The way it is stored in **Rails 4** is {"attr1":"value", "attr2":"value", "attr3":"value"} 

O problema quando busco registros antigos criados quando meu aplicativo está no rails 3, está me jogando erro

 JSON::ParserError: 795: unexpected token at '--- 

Mas quando eu crio novos registros, está funcionando normalmente. Ainda não entendi, como funciona no Rails 4

Eu encontrei a solução finalmente. A implementação do “store accessor” (mencionado na questão) é alterada no activerecord 4.2.4. Anteriormente (registro ativo 3.2.8) os dados são armazenados no database em formato YAML, e estava trabalhando com “codificador: JSON”, que não é um caso no registro de atividades 4.2.4

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

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

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

Daí meu código estava começando a trabalhar depois que eu mudei o codificador de JSON para YAML.

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