OJ 在 rails 3.0.3 和 4.2.5 中响应不同的结果

OJ responds different results in rails 3.0.3 and 4.2.5

我们正在 rails 从 3.0.3 升级到 4.2.5。我们正在使用 OJ 对对象进行序列化以响应移动。升级后,OJ 响应方式不同,如下所述。

addr = Address.where("id = ?", 1)
Oj.dump({'response' => addr}, mode: :compat)

Rails 3.0.3输出:
"{"response":[{"address":{"id":1,"text":"123, city, state","zip":46703}}]}"

Rails 4.2.5输出:
"{"response":[{"id":1,"text":"123, city, state","zip":46703}]}"

发送与 rails 3.0.3 相同的响应的最佳方式是什么?

在序列化对象之前添加以下行后可以正常工作

ActiveRecord::Base.include_root_in_json = true

More information