ActiveResource#load question

In ActiveResource#load we see:

attributes.each do |key, value|   @attributes[key.to_s] =   case value     when Array

To test whether to do recursive resource loading of the attribute.

I am seeing some situations where this construct thinks that an attribute which is a long string as matches the case Array#=== and it ends up trying to instantiate a attribute that isn't an object. Changing the case to check value.class, i.e:

  case value.class

fixes the problem. Anybody have any insight into what's going on here?

-Eric