无法在ruby中转储匿名类Class

任何人都可以解释这个exception在ruby中的含义。

TypeErrorexception:无法转储匿名类Class

代码示例

Class X_controller before filer: validate, :only => [:meth1] def meth1 y.new.send_later(:issue1) #throws me exception end def meth2 y.new.send_later(:issue1) #works end private def valiadate y.new.send_later(:issue1) #throws me exception end end class y include x::z def issue1 end end module x::z def send_later(meth,*args) end end 

当您尝试直接在类上调用to_yamlto_json或任何其他表示而不是在实例上调用它时,会发生这种情况。 例如

 User.to_json 

会转储,但是

 user = User.first user.to_json 

会工作得很好。

编辑:

这个问题似乎也是旧Rails版本中的一个错误,这个错误在(至少)Rails 3中得到了修复。