渲染JSON中的对象名称

时间:2013-07-03 09:51:36

标签: ruby-on-rails json api ruby-on-rails-4

在Rails 4中,当渲染一个对象时,例如User,我得到了这个:

{ "id" : 4 , "name" : "John" }

然而,当使用rails-api gem时,我得到了这个:

{ "user" : { "id" : 4, "name" : "John" } }

什么更正确,如何让Rails返回对象密钥?

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

render json: @user

1 个答案:

答案 0 :(得分:0)

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

在Rails 4中,他们将“已更改ActiveModel::Serializers::JSON.include_root_in_json默认值更改为false”(source)。

另一方面,rails-api gem默认包含一个根元素。您可以在全局或每次通话的基础上轻松禁用它...文档解释它here

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

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