标签: 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
答案 0 :(得分:0)
解释为什么你会看到这种行为......
在Rails 4中,他们将“已更改ActiveModel::Serializers::JSON.include_root_in_json默认值更改为false”(source)。
ActiveModel::Serializers::JSON.include_root_in_json
false
另一方面,rails-api gem默认包含一个根元素。您可以在全局或每次通话的基础上轻松禁用它...文档解释它here。
rails-api
关于你的“什么会更正确”的问题...
我认为答案是主观的。如果我从头开始创建一个应用程序,我可能会让我的客户端遵守所用后端提供的默认值。在处理未来升级时似乎是阻力最小的路径。