我有一个 Rails 3 控制器:
class EmployeeController < ApplicationController
respond_to :json
def index
employees = Employee.all
respond_with employees
end
end
如果我放入一个 pry 断点并调用to_json
on employees
,我会得到我所期望的 - JSON 对象数组的序列化,其属性是我的Employee
ActiveRecord 模型上的属性:
[1] pry(#<EmployeeController>)> employees.to_json
=> "[{\"created_at\":\"2013-06-21T19:22:14Z\",\"email\":\"ian@ ...
然而,当 JSON 结果从控制器返回时,它已经获得了两层额外的对象包装器:一层围绕列表本身,一层围绕每个对象:
{"employee":[{"employee":{"created_at":"2013-06-21T19:22:14Z","email":"ian@ ...
我正在使用的库并不期望这些额外的包装层。Rails 的哪个部分负责添加它们,这是我可以控制的行为吗?
版本:
$ rails -v
Rails 3.2.13
更新
JSON 宝石版本:
$ grep -i json Gemfile.lock
multi_json (~> 1.0)
multi_json (~> 1.0)
json (1.8.0)
multi_json (1.7.7)
json (~> 1.4)
multi_json (~> 1.0)
multi_json (~> 1.0, >= 1.0.2)