# Serialization save problem

**URL:** <https://www.ruby-forum.com/t/serialization-save-problem/142742>\
**Category:** Rails\
**Created:** [July 11, 2008, 12:13am UTC](https://www.ruby-forum.com/t/serialization-save-problem/142742 "2008-07-11T00:13:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![juan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/a698b9/32.png) [@juan](https://www.ruby-forum.com/u/juan)\
**Post date:** [July 11, 2008, 12:13am UTC](https://www.ruby-forum.com/t/serialization-save-problem/142742/1 "2008-07-11T00:13:08Z")

</div>

This is my class:

class Articulo \< ActiveRecord::Base

serialize :atributos\_extendidos, Hash

def after\_find  
self.atributos\_extendidos.each do |k,v|  
Articulo.class\_eval \<\<-CODE  
def #{k}  
self.atributos\_extendidos ||= {}  
self.atributos\_extendidos[:#{k}]  
end  
def #{k}=(val)  
self.atributos\_extendidos ||= {}  
self.atributos\_extendidos[:#{k}] = val  
end  
CODE  
end  
end  
end

And I try this in console:

> > a=Articulo.new(:atributos\_extendidos =\> {:metros =\> “2”,:habitaciones =\> “4”})  
> > a.save!  
> > a  
> > =\> #\<Articulo id: 5, … , atributos\_extendidos: {:metros=\>“2”,  
> > :habitaciones=\>“4”}\>
> 
> > c=Articulo.find(5)  
> > =\> #\<Articulo id: 5, … , atributos\_extendidos: {:habitaciones=\>“4”,  
> > :metros=\>“2”} \>
> 
> > c.habitaciones  
> > =\> “4”
> 
> > c.metros  
> > =\> “2”
> 
> > c.metros = “4”  
> > =\> “4”
> 
> > c  
> > =\> #\<Articulo id: 5, … , atributos\_extendidos: {:habitaciones=\>“4”,  
> > :metros=\>“4”}\>
> 
> > c.save!  
> > =\> true
> 
> > c  
> > =\> #\<Articulo id: 5, … , atributos\_extendidos: {:habitaciones=\>“4”,  
> > :metros=\>“4”} \>
> 
> > c.reload

=\> #\<Articulo id: 5, … , atributos\_extendidos: {:habitaciones=\>“4”,  
:metros=\>“2”}\> # metros returns to “2”

Why I can’t save modified values in :atributos\_extendidos? What am I  
doing wrong?  
Thanks  
Juan MatÃ­as.
