Hay una manera de tener una serialización personalizada para campos en rieles, un método que se ejecuta cuando un campo se guarda y se carga para convertir desde/a una cadena que es lo que finalmente se guarda en la base de datos .serialización personalizada para campos en Rails
Específicamente lo que quiero hacer es tener un campo de tipo de símbolo como género, con posibles valores: masculino y femenino que almacene "masculino" y "femenino" en la base de datos. Hay algunas soluciones, como:
def gender
read_attribute(:gender).try(:to_sym)
end
pero que deja obj.attributes sin cambios, por lo que es una abstracción con fugas.
El enlace de detalles parece estar muerto ahora, desafortunadamente. ¿Hubo alguna razón por la que definiste 'dump' y' load' como métodos de instancia, y pasaste una nueva instancia a 'serialize'? ¿En oposición a definirlos como métodos de clase y pasar la clase a 'serializar'? Solo trato de entender, gracias! – plainjimbo
Me estoy tomando un tiro salvaje en la oscuridad aquí, pero parece que la serialización ActiveRecord usará cualquier objeto que responda a ': dump' y': load'. Entonces, no. No hay ninguna razón por la cual estos sean métodos de instancia en oposición a los métodos de clase. – RyanScottLewis