/ / La serialización de ActiveRecord no funciona correctamente con la columna Hash - ruby-on-rails, activerecord

ActiveRecord serializar no funciona correctamente con la columna Hash - ruby-on-rails, activerecord

Estoy tratando de almacenar un Hash en una columna de la tabla, usando el método de serialización de ActiveRecord, pero no puedo hacerlo funcionar. Estoy usando Rails 4.2.0 y RailsApi 0.3.1

Este es mi modelo:

class Agreement < ActiveRecord::Base
serialize :phone_numbers, Hash
end

phone_numbers es una columna de texto como se requiere.

Luego en la consola:

a = Agreement.new(phone_numbers: {"dario" => "12345"})
a.phone_numbers
=> "{"dario"=>"12345"}" #(Note this is a string, not a Hash as I would expect)

a.phone_numbers["dario"]
=> "dario" #(Not "12345" as I would expect)

¿Me estoy perdiendo algo? ¡Gracias!

Respuestas

3 para la respuesta № 1

El comportamiento que está mostrando es consistente con el serialize llamar estar equivocado, una columna mal nombrada o faltar por completo. P.ej. https://gist.github.com/smathy/2f4536d3e59b7a52c855

Estás mostrando el código correcto en tu pregunta, por lo que no lo copiaste y pegaste correctamente, o quizás no hayas reiniciado tu consola de rieles desde que agregaste / corrigiste eso. serialize ¿llamada?