小编Nic*_*k Z的帖子

破坏Rails 4 JSON渲染的变化?

我在Rails 4上启动了一个新的应用程序,我注意到默认情况下JSON渲染的实现方式似乎是一个突破性的变化,但我无法在任何地方找到它,所以我想知道是否有人能给我一些见解关于(1)API是否实际发生了变化,以及(2)我如何获得我需要的行为(即旧行为).

特别是,我所看到的是,Rails 3中的位置

@answer.as_json
Run Code Online (Sandbox Code Playgroud)

......会回来......

{
  id: 1,
  body: "lorem ipsum..."
  ....
}
Run Code Online (Sandbox Code Playgroud)

在Rails 4中似乎返回相同的方法:

{
  'answer':
    {
      id: 1,
      body: "lorem ipsum..."
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以确认此行为已更改?是否有任何方法可以使旧的行为无法覆盖每个模型的as_json?

这个新实现使得返回包含多个模型的JSON响应变得更加麻烦(现在要么必须在控制器操作中的"render:json ..."调用中通过哈希合并或者通过重写as_json来完成).

ruby activerecord ruby-on-rails ruby-on-rails-4

1
推荐指数
1
解决办法
890
查看次数