我需要在我的JSON响应中包含顶级节点,以便已部署的移动应用程序正常工作 . 我的模型是语言和帖子,帖子属于语言 . 应用程序需要的响应是:
{
"english": {
"posts": [
{
"title": "title",
"content": "content"
},
我的语言控制器代码如下所示:
@posts = @language.posts
render :json => { :posts => @posts.as_json
只需要将JSON中的语言放在其上一级 . 是不是在环境或deploy.rb中有配置来处理这个?
谢谢
3 回答
你为什么不使用JSON模板?然后您可以根据需要自定义它 .
例如,在您的控制器中:
然后在你的意见中,
我不确定以这种方式嵌套JSON是否会导致语法问题 . 或者,您也可以构建哈希,然后调用
to_json
. 例如,如果您想在所有JSON响应中包含root,那么您可以直接前往
config/initializers/wrap_parameters.rb
在那里你会看到/或者如果不存在你可以添加
OR
如果这还不够,并且您想要进一步自定义JSON数据,只需触及active_model_serializers即可 . 您将在一分钟内获得自定义JSON响应,并且您不仅限于在视图/渲染中使用它们 .
我相信
@language.as_json(:include => :posts)
会产生你想要的东西 .编辑: