在 Rails 4 中,当渲染一个对象时,例如用户,我得到这个:
{ "id" : 4 , "name" : "John" }
虽然,在使用 rails-api gem 时,我得到了这个:
{ "user" : { "id" : 4, "name" : "John" } }
什么会更正确,我怎样才能让 Rails 返回对象键?
现在我在我的控制器中这样做:
render json: @user
在 Rails 4 中,当渲染一个对象时,例如用户,我得到这个:
{ "id" : 4 , "name" : "John" }
虽然,在使用 rails-api gem 时,我得到了这个:
{ "user" : { "id" : 4, "name" : "John" } }
什么会更正确,我怎样才能让 Rails 返回对象键?
现在我在我的控制器中这样做:
render json: @user
为了解释为什么你会看到这种行为......
在 Rails 4 中,他们更改了“将ActiveModel::Serializers::JSON.include_root_in_json
默认值更改为false
”(来源)。
另一方面,rails-api
gem 默认包含一个根元素。您可以轻松地在全局范围内或在每次调用的基础上禁用它......文档在此处进行了解释。
关于你的“什么更正确”的问题......
我认为答案是主观的。如果我从头开始一个应用程序,我可能会让我的客户遵守所使用的后端提供的默认值。在处理未来的升级时,这似乎是阻力最小的路径。