【发布时间】:2014-07-07 22:22:08
【问题描述】:
RoR noob here... 我有一个非常基本的应用程序(Ruby 2.1.2;Rails 4.1.2),我已经生成了一个脚手架,并且只有默认的 CRUD 表单。我可以输入和检索值没有问题。但是,我真正需要的是 JSON。当我访问http://rob.com:3000/books.json 时,我得到:
[
{"id":1,"name":"One Flew Over The Cuckoo's Nest","url":"http://rob.com:3000/books/1.json"},
{"id":2,"name":"The Great Gatsby","url":"http://rob.com:3000/books/2.json"}
]
我真正想要的是一个“书”根节点:
{
"books": [
{
"id": 1,
"name": "One Flew Over The Cuckoo's Nest",
"url": "http://rob.com:3000/books/1.json"
},
{
"id": 2,
"name": "The Great Gatsby",
"url": "http://rob.com:3000/books/2.json"
}
]
}
我已经通过 Google 和 SO 进行了挖掘,但还没有看到解决方案。第一个似乎最明显的是取消注释 config\initializers\wrap_parameters.rb 中的以下行
# To enable root element in JSON for ActiveRecord objects.
ActiveSupport.on_load(:active_record) do
self.include_root_in_json = true
end
这似乎没有效果。我还尝试使用此处描述的 Active Model Serializer:http://railscasts.com/episodes/409-active-model-serializers?view=asciicast。同样,没有影响。
最后,我尝试在“书”模型中覆盖 as_json,但没有看到任何效果。
关于我缺少什么的任何建议?
谢谢!
【问题讨论】:
-
wrap_parameters.rb 文件修改后是否重启服务器?
-
是的,每次更改后我都重新启动了。
标签: ruby-on-rails ruby json ruby-on-rails-4