0
我有一个Rails 3控制器:其他对象包装
class EmployeeController < ApplicationController
respond_to :json
def index
employees = Employee.all
respond_with employees
end
end
如果我把一个撬断点和employees
打电话to_json
,我得到了我期待的 - 数组的序列化JSON对象,其属性是我Employee
ActiveRecord的模型的属性:
[1] pry(#<EmployeeController>)> employees.to_json
=> "[{\"created_at\":\"2013-06-21T19:22:14Z\",\"email\":\"[email protected] ...
然而,通过JSON结果从控制器返回的时候,它已经收购了广告对象包装的ditional层:围绕一个列表本身,和一个围绕每个对象:
{"employee":[{"employee":{"created_at":"2013-06-21T19:22:14Z","email":"[email protected] ...
我有没有预料到这些额外的包装层工作的图书馆。 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)
这听起来像是我正在经历的行为,但是'include_root_in_json'已经是false了,并且默认值已经在'wrap_parameters.rb'中设置了。它让我怀疑我的JSON库是否合适 - 我将用我的JSON宝石更新这个问题。 –
有趣的..你可以尝试旧版本的JSON宝石? –