MyModel.new.from_json在Rails 3.0.3中没有提供数据

时间:2011-02-06 20:35:45

标签: json ruby-on-rails-3

我有一些Rails 2.3.x代码,我想在Rails 3.0.3上运行,但它似乎在我的JSON中失败到ActiveRecord代码。这是我的工作:

mymodel = MyModel.new.from_json(json_string)

我这里没有错误,但是我的对象是空的,好像我的json_string中没有数据,但是有。如果我查看API(http://apidock.com/rails/ActiveRecord/Serialization/from_json),它会在我看来因为3.x不支持,或者?

我尝试过使用ActiveSupport :: JSON.decode,但它似乎解码为键/值的哈希表?

1 个答案:

答案 0 :(得分:0)

这里的问题相同。罪魁祸首是https://github.com/rails/rails/commit/c1d73270717f30498f8f4d55d6695509107c2834,这里有一个解释:http://www.simonecarletti.com/blog/2010/04/inside-ruby-on-rails-serializing-ruby-objects-with-json/

解决方案似乎确实使用

   @obj.attributes = ActiveSupport::JSON.decode(json)

而不是“@ obj.from_json(json)”。至少对于ActiveRecord对象,这对我有用。