[Ror-es] Rails no carga las classes correctamente cuando deserializa un objeto

Xavier Noria
Mon Jan 17 23:12:23 GMT 2011


2011/1/17 Fernando Guillen :

> No creéis que esto debería estar mejor soportado por Rails?, con algún
> monkey-patching para YAML y Marshal como el de Xavi pero de serie?

No estoy muy seguro ya que son librerias externas... lo que si que veo
es un plugin util ahi.

Por cierto que el cacho aquel de codigo esta medio copiado y pegado
pero le falta una manita de pintura rubyana, lo repego revisado a ojo
(no lo he probado):

class << Marshal
  def load_with_rails_classloader(*args)
    load_without_rails_classloader(*args)
  rescue ArgumentError, NameError => e
    if e.message =~ %r(undefined class/module)
      const = e.message.split.last
      const.constantize
      retry
    else
      raise
    end
  end

  alias_method_chain :load, :rails_classloader
end