Ruby on rails 呈现JSON时的对象名称

Ruby on rails 呈现JSON时的对象名称,ruby-on-rails,json,api,ruby-on-rails-4,Ruby On Rails,Json,Api,Ruby On Rails 4,在Rails 4中,当渲染对象(例如用户)时,我得到以下结果: { "id" : 4 , "name" : "John" } { "user" : { "id" : 4, "name" : "John" } } 而在使用rails api gem时,我得到了以下信息: { "id" : 4 , "name" : "John" } { "user" : { "id" : 4, "name" : "John" } } 还有什么更正确,我如何让Rails返回对象键 现在,我正在控制器中执行此操

在Rails 4中,当渲染对象(例如用户)时,我得到以下结果:

{ "id" : 4 , "name" : "John" }
{ "user" : { "id" : 4, "name" : "John" } }
而在使用rails api gem时,我得到了以下信息:

{ "id" : 4 , "name" : "John" }
{ "user" : { "id" : 4, "name" : "John" } }
还有什么更正确,我如何让Rails返回对象键

现在,我正在控制器中执行此操作:

render json: @user

为了解释为什么你会看到这种行为

在Rails 4中,他们将“changed
ActiveModel::Serializers::JSON.include\u root\u In_JSON
默认值更改为
false
”()

另一方面,默认情况下,
railsapi
gem包含一个根元素。您可以轻松地在全局或每次呼叫的基础上禁用它。。。医生解释了这一点

关于你的“什么更正确”问题


我认为答案是主观的。如果我从零开始启动一个应用程序,我可能会让我的客户端遵守所用后端提供的默认设置。在处理未来升级时,这似乎是阻力最小的路径

使用
在json中包含\u root\u
选项:哦,谢谢。请问,这个名称空间是怎么回事?我看到了任何不同的意见..IDK,在尝试Backbone.js()时发现了这个选项