Rails 3.1 include_root_in_json

jsp*_*ner 6 ruby-on-rails ruby-on-rails-3

ActiveRecord::Base.include_root_in_json = true 似乎没有在rails 3.10.rc4中工作,我在文档中看不到它.

由于根元素现在默认关闭,我们如何重新启用它?

@comments.to_json 在rails 3.1现在看起来像

[
  {
    comment: "Fun street park.",
    created_at: 2011-06-29T02:28:29Z,
  }
]
Run Code Online (Sandbox Code Playgroud)

在以前的版本中,它有根节点,我需要回来.

[
  {
    comment: {
      comment: "Fun street park.",
      created_at: 2011-06-29T02:28:29Z
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

jsp*_*ner 15

事实证明,Rails 3.1只是为你创建这个json配置文件.我不知道这个文件在这里所以我的初始化程序中的文件被忽略了.

在Ryan上面的回答确实覆盖了这个设置.

配置/初始化/ wrap_parameters.rb

# Be sure to restart your server when you modify this file.
#
# This file contains settings for ActionController::ParamsWrapper which
# is enabled by default.

# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
ActionController::Base.wrap_parameters :format => [:json]

# Disable root element in JSON by default.
if defined?(ActiveRecord)
  ActiveRecord::Base.include_root_in_json = false
end
Run Code Online (Sandbox Code Playgroud)


Rya*_*igg 8

尝试直接在您的Comment模型上进行设置.

class Comment < ActiveRecord::Base
  self.include_root_in_json = true
end
Run Code Online (Sandbox Code Playgroud)