Loading associations doesn't work if class hasn't been loaded #27

ctaintor opened this Issue Aug 10, 2010 · 0 comments


None yet
1 participant

I ran into this problem, and, it's not a DJ problem but a YAML and Rails problem. However, since DJ makes use of YAML serializing, it is probably wise to have something like this included in DJ.

#Taken from http://blog.sbf5.com/?p=39
#Basically, when an object is deserialized and the class that was serialized
#doesn't exist, then you get back a YAML object, rather than the object you
#wanted.  The fix below will use Rails' autoloading to load the class if it's
#not already there.
YAML::Syck::Resolver.class_eval do
  def transfer_with_autoload(type, val)
    match = type.match(/object:(\w+(?:::\w+)*)/)
    match && match[1].constantize
    transfer_without_autoload(type, val)
  alias_method_chain :transfer, :autoload
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment