【发布时间】:2013-05-18 18:31:20
【问题描述】:
我在 Rails 4 上启动了一个新应用程序,我注意到默认情况下 JSON 渲染的实现方式似乎发生了重大变化,但我在任何地方都找不到它,所以我想知道是否有人可以提供我对 (1) API 是否确实发生了变化以及 (2) 我如何获得我需要的行为(即旧行为)有所了解。
特别是,我看到的是,在 Rails 3 中的位置
@answer.as_json
...会返回...
{
id: 1,
body: "lorem ipsum..."
....
}
在 Rails 4 中,似乎返回的是相同的方法:
{
'answer':
{
id: 1,
body: "lorem ipsum..."
...
}
}
其他人可以确认这种行为已经改变吗?除了为每个模型覆盖 as_json 之外,有什么方法可以让旧行为恢复原状?
这个新实现使得返回包含多个模型的 JSON 响应变得更加麻烦(现在要么必须通过控制器操作中的“render :json ...”调用中的哈希合并来完成,要么通过覆盖 as_json )。
【问题讨论】:
-
你看过
config/initializers/wrap_parameters.rb吗?
标签: ruby-on-rails ruby activerecord ruby-on-rails-4