0
我有2个元素之间的关系。基本上,我有帖子&类别。Json串行器不同的json名称
在我的方法,我有2个控制器:
PostsController
与index, show, update, destroy & *categories*
CategoriesController
与index
当我想修改类,我做了POST
到/post/:post_id/categories
。一切正常。但是我想回归的答案是我的帖子的类别,只是类别。所以,我这样做:
render json: @post.categories,
each_serializer: CategorySerializer
它工作正常。但我收到的JSON的答案是:
posts: [{id:1, title:'Category 1'}, {id:2, title:'Category 2'}]
但所需的输出应该是:
categories: [{id:1, title:'Category 1'}, {id:2, title:'Category 2'}]
我如何改变呢?
我用这个作为指导。但我没有使用你的第一行。我只改变: from:'render json:@ post.categories' to:'render {categories:@ post.categories}' 我需要上一行理论上的东西吗?或者我可以使用我的解决方法吗? 非常感谢!有用!但我想知道第一行的原因(或者如果我可以使用解决方法没有问题)后标记为接受:) – joseglego
第一行的原因是更改根键,从'@ post'变量, 默认。你也可以勾选['如何添加root密钥'](https://github.com/rails-api/active_model_serializers/blob/master/docs/howto/add_root_key.md#how-to-add-root-key)和['覆盖根密钥'](https://github.com/rails-api/active_model_serializers/blob/master/docs/general/rendering.md#overriding-the-root-key),但我发现更容易使用像我的回答中的黑客攻击。 –