我有一些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,但它似乎解码为键/值的哈希表?
答案 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对象,这对我有用。