ActiveRecord storing arrays and hashes

Hi,

When trying to store a Array or Hash to a string field, ActiveRecord
automatically
serializes them to yaml. If that’s so why is there a special option
called serialize?


Azhagu Selvan

http://tamizhgeek.in

On Friday, August 24, 2012 11:46:35 AM UTC+1, Azhaguselvan SP wrote:

Hi,

When trying to store a Array or Hash to a string field, ActiveRecord
automatically
serializes them to yaml. If that’s so why is there a special option
called serialize?

The automatic serialization is just a side effect that everything has to
be forced into a string before active record will have it. Because
Active
Record doesn’t know that the column is a serialzied one, when you try
and
retrieve the value you’ll just get the raw yaml string. Using serialise
tells Active Record to unserialize when reading.

Fred

On Fri, Aug 24, 2012 at 4:35 PM, Frederick C.
[email protected] wrote:

The automatic serialization is just a side effect that everything has to be
forced into a string before active record will have it. Because Active
Record doesn’t know that the column is a serialzied one, when you try and
retrieve the value you’ll just get the raw yaml string. Using serialise
tells Active Record to unserialize when reading.

Oops yeah. I was checking this within a rails console without reloading
it.
After reloading, the attribute just returns a yaml string.

Thanks for the clarification!


Azhagu Selvan

http://tamizhgeek.in

On Friday, 24 August 2012 06:12:02 UTC-5, Azhaguselvan SP wrote:

Oops yeah. I was checking this within a rails console without reloading
it.
After reloading, the attribute just returns a yaml string.

It also exists so we can build custom serializers, for example I have
several fields like role which are symbolized and string-ified using a
serializer and a custom serializer to store an array of tags as a NULL
hstore hash.