Ruby ActiveSupport::JSON:Module的未定义方法“encode”

Ruby ActiveSupport::JSON:Module的未定义方法“encode”,ruby,json,activesupport,Ruby,Json,Activesupport,我经常收到这个错误,但它似乎也是随机的 C:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/core_ext/object/to_json.rb:20:in `to_json' 在散列上调用_json时偶尔会发生这种情况,例如: {:@i=>18}.to_json 以前有人见过这个吗?这很奇怪,在互联网上找不到太多相关信息。我在使用线程时就知道这一点,但我使用的不是activerecord,而是

我经常收到这个错误,但它似乎也是随机的

C:/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/core_ext/object/to_json.rb:20:in `to_json'
在散列上调用_json时偶尔会发生这种情况,例如:

{:@i=>18}.to_json

以前有人见过这个吗?这很奇怪,在互联网上找不到太多相关信息。

我在使用线程时就知道这一点,但我使用的不是activerecord,而是SimpleRecord amazon的db。解决方案是先使用.to_json而不使用线程:

MyFantasticModel.first.to_json 
# and then run the threaded stuff
@threads << Thread.new {...

我在使用线程时得到了这个结果,但我没有使用activerecord,而是使用SimpleRecord amazon的db。解决方案是先使用.to_json而不使用线程:

MyFantasticModel.first.to_json 
# and then run the threaded stuff
@threads << Thread.new {...

那么,您认为这是SimpleRecord还是与“aws”gem相关?我认为这是与activesupport初始化相关的。我已经将simplerecord的后端切换到fog,以便在欧洲服务器上运行。应该是activerecord的东西,是的。我偶尔也会遇到同样的问题。像这样的初始值设定项{:A=>:b}.to_s作为程序的第一行帮助我修复了它。这在我使用线程时也修复了它。我认为这是因为ActiveRecord懒洋洋地初始化to_json函数。如果它最终在一个线程中执行此操作,那么您的其他线程可能会在它正确初始化之前尝试访问它。那么您认为这是SimpleRecord还是与“aws”gem相关?我认为它与activesupport初始化相关。我已经将simplerecord的后端切换到fog,以便在欧洲服务器上运行。应该是activerecord的东西,是的。我偶尔也会遇到同样的问题。像这样的初始值设定项{:A=>:b}.to_s作为程序的第一行帮助我修复了它。这在我使用线程时也修复了它。我认为这是因为ActiveRecord懒洋洋地初始化to_json函数。如果它最终在一个线程中执行此操作,那么您的其他线程可能会在它正确初始化之前尝试访问它。