Forum: Ruby on Rails acts_as_hash

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
List R. (Guest)
on 2005-11-29 05:46
Anyone work on, or interested in, a acts_as_hash?

It would allow things like['isbn'] = 32232323['color'] = 'blue'
id =


p = Product.find(id)
p['color'] #=> 'blue'


Product.hashfind_by_properties('isbn', 32232323) #=> p

It's useful when the properties you need to store are always changing,
so you can't use field mapping, but you want to query by them, and so
can't use serializable.

Comments?  Suggestions?  Criticisms?
garrick.vanburen (Guest)
on 2005-11-29 06:26
(Received via mailing list)
I think this already exists as :serialize

Or at least, it works for my purposes.


On 11/28/05, List R. <removed_email_address@domain.invalid> wrote:
> can't use serializable.
Garrick Van Buren
ph: 612 325 9110
First Crack Podcast

gFeed - all my writing in one place

PodcastMN - The Sound of Minnesota

Garrick's Podcast Picks
List R. (Guest)
on 2005-11-29 06:51
garrick.vanburen wrote:
> I think this already exists as :serialize

You can't do SQL queries by fields of :serialize .  You need to
instantiate all the objects into Ruby, and check them one by one, which
is slow (although it can be done in one line of code).
david.felstead (Guest)
on 2005-11-29 08:11
(Received via mailing list)
I've jsut made a blog post on a quick-and-dirty way to do the querying
using the 'serialize' column:

Not brilliant, and more or less untested, but better than pulling all
of the data from the server and parsing it application side.  Very
simple to turn into a plugin, too.


peter.j.donald (Guest)
on 2005-11-29 10:28
(Received via mailing list)

As far as I know there is no one working on this but I would love to
see an addition like this to rails.

On 11/29/05, List R. <removed_email_address@domain.invalid> wrote:
> can't use serializable.

Peter D.
This topic is locked and can not be replied to.