Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails生成的JSON中的其他对象包装器_Json_Ruby On Rails 3 - Fatal编程技术网

Rails生成的JSON中的其他对象包装器

Rails生成的JSON中的其他对象包装器,json,ruby-on-rails-3,Json,Ruby On Rails 3,我有一个Rails 3控制器: class EmployeeController < ApplicationController respond_to :json def index employees = Employee.all respond_with employees end end 但是,当从控制器返回JSON结果时,它已经获得了两层额外的对象包装器:一层围绕列表本身,另一层围绕每个对象: {"employee":[{"employee":{"c

我有一个Rails 3控制器:

class EmployeeController < ApplicationController
  respond_to :json

  def index
    employees = Employee.all
    respond_with employees
  end
end
但是,当从控制器返回JSON结果时,它已经获得了两层额外的对象包装器:一层围绕列表本身,另一层围绕每个对象:

{"employee":[{"employee":{"created_at":"2013-06-21T19:22:14Z","email":"ian@ ...
我正在使用的库不需要这些额外的包装层。Rails的哪个部分负责添加它们,这是我可以控制的行为吗

版本:

$ rails -v
Rails 3.2.13
更新

JSON gem版本:

$ 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)
召唤

在渲染之前,查看得到的结果

如果有效,就把

# Disable root element in JSON by default.
ActiveSupport.on_load(:active_record) do
  self.include_root_in_json = false
end

在您的config/initializers/wrap_parameters.rb.

中,这听起来像是我正在经历的行为,但是
include_root_in_json
已经为false,默认值已经在
wrap_parameters.rb
中设置为false。这让我怀疑我的JSON库是否合适——我将用我的JSON gems更新这个问题。。你能试试旧版本的json gem吗?
ActiveRecord::Base.include_root_in_json = false
# Disable root element in JSON by default.
ActiveSupport.on_load(:active_record) do
  self.include_root_in_json = false
end