无法在ruby中转储匿名类Class

时间:2013-03-02 08:42:58

标签: ruby-on-rails ruby ruby-on-rails-3

任何人都可以解释这个异常在ruby中意味着什么。

  

TypeError异常:无法转储匿名类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

1 个答案:

答案 0 :(得分:4)

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

User.to_json

将转储,但

user = User.first
user.to_json

工作得很好。

修改

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