1

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

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

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

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

什么会更正确,我怎样才能让 Rails 返回对象键?

现在我在我的控制器中这样做:

render json: @user
4

1 回答 1

0

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

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

另一方面,rails-apigem 默认包含一个根元素。您可以轻松地在全局范围内或在每次调用的基础上禁用它......文档在此处进行了解释。

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

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

于 2013-08-25T19:11:58.100 回答