# Problem loading associated instances after deserialization

**URL:** <https://www.ruby-forum.com/t/problem-loading-associated-instances-after-deserialization/103152>\
**Category:** Rails\
**Created:** [May 2, 2007, 1:07pm UTC](https://www.ruby-forum.com/t/problem-loading-associated-instances-after-deserialization/103152 "2007-05-02T13:07:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![edvardm](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/c37758/32.png) [@edvardm](https://www.ruby-forum.com/u/edvardm)\
**Post date:** [May 2, 2007, 1:07pm UTC](https://www.ruby-forum.com/t/problem-loading-associated-instances-after-deserialization/103152/1 "2007-05-02T13:07:23Z")

</div>

Hi,

I’m not sure if this is an active record bug, but the problem is as  
follows:  
I’m trying to create a cache of results for an expensive computation.  
I’m storing  
results to database.

Results contain child objects through has\_many association. Storing  
data to cache seems to work fine, as well as reading data SEEMS to work  
if I use object.inspect method, but when I try to read child objects  
of any item found in the cache it doesn’t work (it always returns an  
empty array).

A contrived example of what happens:

class MyMeasurementCache

# each item contains multiple measurements

# each measurement has\_many results

serialize :items\_measurements

def MyMeasurementCache.run\_measurements(items)  
…  
cache = find\_existing\_or\_create\_new(compute\_digest(items))  
if cache.hit?  
items.zip(cache.items\_measurements).each do |item, measurements|  
item.measurements = measurements  
# now if I inspect item.measurements, I see results in inspect:  
# item.measurements.inspect  
# \<MeasurementTypeFoo:0x14c034d8 @attributes={“item\_id”=\>nil,  
# @results=[#\<Result:0x14c03744 @attributes={…}…]  
# however, the following always returns an empty array:  
item.measurements.each do |meas|  
meas.results # always empty  
end  
end  
else  
# not found from cache, store measurements  
cache.items\_measurements = items.map { |i| measure\_item(i) }  
…  
end  
end  
end
