Guardar hash mediante ymal en campo de text

La idea es que hay muchas opciones propias de cada usuario en los
sistemas y
no quiero estar agregando un campo en la tabla Usuarios por cada una de
ellas, y quisiera poder agregarlas libremente. Por tanto si pudiera
guardar/recuperara un hash en un campo tipo TEXT, pero no he encontrado
como.

encontre como transformar en texto un hash, pero no como hacer lo
opuesto.

x={ :a => 1, :b => 2}
x.to_yaml # “— \n:b: 2\n:a: 1\n”

Gracias

Hola,

La idea es que hay muchas opciones propias de cada usuario en los
sistemas y no quiero estar agregando un campo en la tabla Usuarios por
cada una de ellas, y quisiera poder agregarlas libremente. Por tanto
si pudiera guardar/recuperara un hash en un campo tipo TEXT, pero no
he encontrado como.
encontre como transformar en texto un hash, pero no como hacer lo opuesto.

es más fácil que eso. ActiveRecord tiene un fantástico serialize que
puedes usar justo para eso

tu le indicas qué tipo de objeto es el que vas a serializar, y entonces
AR cuando va a guardar le hace un marshall y cuando lee le hace un
unmarshall. para ti es todo transparente. Una vez colocas el serialize,
trabajas con tu Hash y te olvidas.

Saludos,

javier ramírez

En tu modelo, define el campo como “serializado”:

class MiModelo
serialize :opciones
end

Y deja que rails se encargue de convertir el hash en texto y viceversa.

– via blackberry