我有一个 Rails 3 控制器:
class EmployeeController < ApplicationController
  respond_to :json
  def index
    employees = Employee.all
    respond_with employees
  end
end
如果我放入一个 pry 断点并调用to_jsonon employees,我会得到我所期望的 - JSON 对象数组的序列化,其属性是我的EmployeeActiveRecord 模型上的属性:
[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)