ActiveRecord storing arrays and hashes

273 views
Skip to first unread message

selv...@gmail.com

unread,
Aug 24, 2012, 6:46:35 AM8/24/12
to rubyonra...@googlegroups.com
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

Frederick Cheung

unread,
Aug 24, 2012, 7:05:16 AM8/24/12
to rubyonra...@googlegroups.com


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

selv...@gmail.com

unread,
Aug 24, 2012, 7:12:02 AM8/24/12
to rubyonra...@googlegroups.com
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!

Jordon Bedwell

unread,
Aug 25, 2012, 11:49:48 AM8/25/12
to rubyonra...@googlegroups.com


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.
Reply all
Reply to author
Forward
0 new messages